Я пишу контрольный пример для проверки выполнения с помощью конкретного вызова метода с конкретными аргументами. Тест должен пройти только тогда, когда определенные значения переданы (например, только когда статус и ParseError переданы) в метод. Ниже приведен фрагмент кода для проверки:
Mockito.verify(exeImpl, Mockito.atLeastOnce()).setData(eq("status"), eq("ParseError"));
и дело не удалось с ниже:
Argument(s) are different! Wanted:
exeImpl.setData(
"status",
"ParseError"
);
-> at com.TestTask.testRest(TestTask.java:280)
Actual invocation has different arguments:
exeImpl.setData(
"status",
"Error"
);
-> at
com.TestTask.setDefault(Task.java:186)
Фактический вызов, упомянутый в ошибке, вызван тем, что setData вызывается с значениями по умолчанию перед запуском бизнес-логики. После выполнения бизнес-логики setData вызывается снова для установки результата.
И setData имеет определение ниже
setData(final String arg1, final Object arg2) {...}
Я знаю об ArgumentCaptor, но я просто пытаюсь заставить его работать так, как я полагаю, что совпадение eq () используется здесь, чтобы проверить равенство значения передано для обоих аргументов. Или это вызывает проблему, потому что это объект.
Можно ли будет проверить, как это? Спасибо.