#android #unit-testing #mockito
#Android #модульное тестирование #mockito
Вопрос:
Я пытаюсь проверить, что мой mockResource вызывает getQuantityString(), передавая нужное количество.
Фактический код с использованием getQuantityString()
resources.getQuantityString(R.plurals.SUCCESS,5,5);
В тесте:
@Captor private ArgumentCaptor<Integer> firstIntegerCaptor;
verify(resources).getQuantityString(isA(int.class),firstIntegerCaptor.capture(), any());
Я получил ошибку ниже.
org.mockito.exceptions.verification.junit.ArgumentsAreDifferent:
Argument(s) are different! Wanted:
resources.getQuantityString(
isA(int),
<Capturing argument>,
<any>
);
Actual invocation has different arguments:
resources.getQuantityString(
2131165186,
5,
5
);
Я проверяю прототип этой функции.
public String getQuantityString(int id, int quantity, Object... formatArgs)
Ошибка из-за объекта… formatArgs или Integer не соответствует int?
Ответ №1:
Использовать
verify(resources).getQuantityString(anyInt(),firstIntegerCaptor.capture(), Matchers.<Object>anyVararg());