【发布时间】:2018-03-26 13:38:27
【问题描述】:
我是自动测试的初学者,所以我想调用 API 来更新后端的一些数据,我想用 JUnit4 来测试它。问题是当我想订阅时,他会抛出 NPE。
我的测试类看起来像:
class PhoneNumberPresenterTest {
@Mock
private val userService: UserService? = null
val testScheduler = TestScheduler()
val scheduler = TestSchedulerProvider(testScheduler)
@Before
fun setup() {
//init stuffs
}
@Test
fun onContinueClicked_ResponseSuccess() {
val phoneNumber = "(01234567890)"
val genericResponse = GenericResponse<CheckApprovedStatusResponse>()
genericResponse.data = CheckApprovedStatusResponse()
`when`(userService!!.checkUserApprovedStatus(phoneNumber)).thenReturn(just(genericResponse))
presenter!!.onContinueClicked(phoneNumber)
testScheduler.triggerActions()
///stuffs
}
这里是我在 Presenter 的后端发布我的用户数据的地方
class PhoneNumberPresenter(private var mView: PhoneNumberContract.View,
private var scheduler: SchedulerProvider) : PhoneNumberContract.Handler {
override fun onContinueClicked(enteredPhoneNumber: String) {
mUserService.checkUserApprovedStatus(phoneNumber)
.subscribeOn(scheduler.io())
.observeOn(scheduler.ui())
.subscribe({ response ->
}, { error ->
})
}
}
更新
mUserService.checkUserApprovedStatus(phoneNumber) 为空
【问题讨论】:
标签: android junit kotlin rx-java2 dagger-2