以下测试失败。我手动测试了一下,确实有效。但我不确定为什么不调用该方法。我想这与我正在协程中测试一个方法有关,但是,我正在使用将TestRule调度程序设置为testDispatcher注入到演示者的方法。
我希望你能帮忙。欢迎对代码的任何部分提出任何评论。谢谢!
测试班
@RunWith(JUnit4::class)
class RegisterPresenterTest {
@get:Rule
var coroutinesTestRule = CoroutineTestRule()
@MockK
lateinit var viewMock: IRegisterView
@MockK
lateinit var service : UserManagementServiceImpl
private lateinit var presenter: RegisterPresenter
@Before
fun setUp() {
MockKAnnotations.init(this)
presenter =
RegisterPresenter(viewMock, coroutinesTestRule.testDispatcherProvider)
}
@Test
fun `shouldCreateNewUser`() = coroutinesTestRule.testDispatcher.runBlockingTest {
// given
val userDetails = UserDetails(
username = "user1", password = "123",
name = "Juan", surname = "Doe", email = "user1@bbc.com"
)
coEvery {
service.verifyUserIsNotInDatabase(userDetails.username, userDetails.email)
} returns UserExistence(usernameInDatabase = false, emailInDatabase …Run Code Online (Sandbox Code Playgroud)