[英]Kotlin - any substitute for companion object inside of another object (not class)?
[英]how Unit test methods of Kotlin class with private constructor, companion object and extending another class without mocking
我的 class 正在扩展另一个 class 并具有配套的 object 和私有构造函数。 我必须对 getLastKnownLocation() 方法进行单元测试。 我不想模拟 GpsTrackingService class 并且想在我的测试 class 中实例化它。 我该怎么做? 感谢您的帮助,提前
class GpsTrackingService private constructor(private val context: Context, private val Snavigator: SNavigator?) : LocationListener {
companion object {}
getLastKnowLocation() {}
}
您可以将构造函数设为internal
,模拟依赖项,并使用它们来实例化您的 class。
class GpsTrackingServiceTest {
private lateinit var context: Context
private lateinit var sNavigator: SNavigator
private lateinit var trackingService: GpsTrackingService
@Before
fun setup() {
context = Mockito.mock(Context::class.java)
sNavigator = Mockito.mock(SNavigator::class.java)
trackingService = GpsTrackingService(context, sNavigator)
}
@Test
fun test_getLastKnowLocation() {
trackingService.getLastKnowLocation()
// do your verifications, etc
}
}
这对我有用
class GpsTrackingServiceTest {
private lateinit var mContext: Context
private lateinit var sNavigator: SNavigator
private lateinit var trackingService: GpsTrackingService
@Before
fun setup() {
cmContext = InstrumentationRegistry.getInstrumentation().context
sNavigator = Mockito.mock(SNavigator::class.java)
trackingService = GpsTrackingService.getInstance(mContext, redNavigator)
}
@Test
fun test_getLastKnowLocation() {
trackingService.getLastKnowLocation()
// do your verifications, etc
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.