使用mockK-flatMap进行单元测试



我是单元测试的新手,我不明白如何使用kotlin测试这种方法,使用MockK:

override fun register(firebaseId: String, uniqueId: String): Completable {
return Observable.just(0).observeOn(schedulerProvider.io()).flatMap {

val requestRegisterPushes = registerBuilder.build(firebaseId, uniqueId)
apiServiceFactory.build()
.registerPushes(requestRegisterPushes)
.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
}.flatMapCompletable { 
Completable.complete() 
}
}

这是我的测试代码,测试是成功的,但条件覆盖率没有增加。

@Test
fun `register_Test()`() {
val requestRegisterPushes = mockk<RequestRegisterPushes>(relaxed = true)
every { registerBuilder.build(any(), any(), any(), any()) } returns requestRegisterPushes
every { apiServiceFactory.build().register(requestRegisterPushes) } returns Observable.just(SimpleResponse())

val resp = userRepository.register("x7gbyb68837g78s", "XXX-XXX-XXX")
}

如果你能帮我一点忙,我将不胜感激。

当然您没有任何覆盖范围,因为flatmapflatMapCompletable运算符内部的代码没有执行。

您需要订阅Observable以使其成为emmit元素,在您为其订阅

val subscriber = TestSubscriber<>();
val resp = userRepository.register("x7gbyb68837g78s", "XXX-XXX-XXX").subscribe(subscriber)
subscriber.assertComplete()

相关内容

  • 没有找到相关文章

最新更新