我正在尝试使用 MockitoJUnitRunner 运行单元测试;它们在 Android Studio 下运行良好,但一些(不是全部)测试在命令行中运行时失败 - 这是一个大问题,我需要能够从我的持续集成平台运行它们,而不仅仅是从 IDE 运行它们。这是正在测试的实际方法之一:
internal fun requestSecurityQuestion() {
if (isViewAttached) mvpView.showLoadingDialog()
api.getSecurityQuestionToday(mDataManager.token,
ACTION_ASK_SECURITY_QUESTION_ON_LOGIN, 0)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(object : CallbackWrapper<SettingsResponse>(mDataManager) {
override fun onSuccess(response: SettingsResponse) {
mDataManager.securityQuestion = response.question
mDataManager.processId = response.processId
if (isViewAttached) {
mvpView.dismissLoadingDialog()
mvpView.showVsecVerificationDialog(0, response.question!!)
}
}
override fun onFailed(errorId: Int, jsonResponse: String?) {
if (isViewAttached) mvpView.dismissLoadingDialog()
}
})
}
Run Code Online (Sandbox Code Playgroud)
这是失败的测试之一:
@RunWith(MockitoJUnitRunner::class)
class HomePresenterTest {
@Mock
private var mView: HomeView? = null
@Mock
private var mDataManager: DataManager? = null
@Mock
private var …Run Code Online (Sandbox Code Playgroud)