У меня есть этот слушатель
interface AuthListener<T : Any> {
fun onCompletion(response: Response, serializedObject: T?, error: Error?)
}
Существует также расширение для удовольствия c
fun AuthService.login(
credential: Credential,
completion: (Response, LoginResponse?, Error?) -> Unit
) {
login(credential, object :
AuthService.AuthListener<LoginResponse> {
override fun onCompletion(
response: Response,
serializedObject: LoginResponse?,
error: Error?
) {
completion(response, serializedObject, error)
}
})
}
В докладчике я звоню вот так
authService.login(Credential(username, password)) {
networkResponse, response, error ->
when (networkResponse.statusCode) {
HTTP_STATUS_CODE_OK -> {}
HTTP_STATUS_CODE_BAD_REQ -> {}
}
}
Поэтому я пытаюсь написать модульный тест для кода состояния, но думаю, что я делаю неправильно. Как я могу написать модульный тест для кодов состояния?
val responseCaptor = argumentCaptor<(Response, LoginResponse?, Error?) -> Unit>()
val credential = Credential(FAKE_USERNAME, FAKE_PASSWORD)
verify(authenticationServiceMock)?.login(credential, responseCaptor.capture())
responseCaptor.firstValue.invoke(responseMock, loginResponseMock, errorMock)
Это ошибка:
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method AuthServiceKt.login, parameter completion
......
org.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock) here:
-> at setupRoleTest