Я хотел проверить вызовы API в моем приложении. поскольку вызовы API являются асинхронными. Я использую mockito (verify
вместе с ArgumentCaptor
).
@Captor
lateinit var callbackCaptor: ArgumentCaptor<Callback<ResponseModel>>
@Test
fun testDetailsApiCall() {
val mock: MyRepository = mock()
verify(mock.getSomeDetails("xxx", "xxx", capture(callbackCaptor)))
}
getSomeDetails
внутри MyRepository
вызывает вызов API сервера и отправляет ответ обратно через interface
callback.
Но когда я выполняю этот тестовый пример, я получаю следующую ошибку
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
3 matchers expected, 1 recorded:
-> at xxx.xxxx.testDetailsApiCall
This exception may occur if matchers are combined with raw values:
//incorrect:
someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));
For more info see javadoc for Matchers class.
Если вы, ребята, сможете выяснить проблему в этом, было бы очень полезно