Android Studio 3.4
У меня есть следующий метод, который я тестирую.По сути, этот тест делает запрос и возвращает LoginResponseEntity
, который будет отображен и возвращает Single<LoginResponse>
override fun loginUserPost(username: String, password: String, uniqueIdentifier: String, deviceToken: String, apiToken: String) : Single<LoginResponse> {
val loginRequestEntity = LoginRequestEntity(username, password, uniqueIdentifier, deviceToken)
return loginAPIService.loginUserPost(loginRequestEntity, apiToken)
.map {
loginResponseDomainMapper.map(it)
}
}
Тестовый пример, который я написал, работает, но я думаю, что этоне полностью тестирует этот метод.
@Test
fun `should return LoginResponse`() {
val loginRequestEntity = LoginRequestEntity("username", "password", "uniqueidentifier", "devicetoken")
val loginResponse = LoginResponse("token", createUser(), emptyList(), emptyList())
val loginResponseEntity = LoginResponseEntity("token", createUserEntity(), emptyList(), emptyList())
whenever(loginAPIService.loginUserPost(loginRequestEntity, "apitoken")).thenReturn(Single.just(loginResponseEntity))
loginServiceImp.loginUserPost("username", "password", "uniqueidentifier", "devicetoken", "apitoken")
.test()
.assertValue(loginResponse)
verify(loginAPIService).loginUserPost(loginRequestEntity, "apitoken")
}
private fun createUser() =
User(
"id",
"email",
"firstname",
"lastname",
"phone",
"address",
"dob",
"customer",
listOf("enterpriseids"),
listOf("vendorids"))
private fun createUserEntity() =
UserEntity(
"id",
"email",
"firstname",
"lastname",
"phone",
"address",
"dob",
"customer",
listOf("enterpriseids"),
listOf("vendorids"))
}
Могу ли я сделать еще что-нибудь, чтобы протестировать этот метод.Должен ли я тестировать .map{loginResponseDomainMapper.map(it)
часть этого метода?