Я использую Mockito / Powermock в модульном тесте Android, написанном на Kotlin. У меня есть код следующим образом:
verify(myCompanionMock, atLeastOnce()).someMethod(any(), any())
Но я получаю эту ошибку:
Comparison Failure:
<Click to see difference>
Argument(s) are different! Wanted:
companion.someMethod(
<any java.io.File>,
<any java.io.File>
);
-> at org.powermock.core.MockGateway.doMethodCall(MockGateway.java:182)
Actual invocation has different arguments:
companion.someMethod(
null,
null
);
соответственно, если я заменю совпадение any()
на anyOrNull()
тест проходит. Я вступил с отладчиком, чтобы проверить, что фактические объекты File (которые не являются фиктивными) передаются someMethod (). Я также проверил, что насмешка над объектами stati c Companion работает. (Все остальные тесты на нем выполняются, как и ожидалось).
Stati c Класс Companion записан в Kotlin. Тестируемый класс, вызывающий Companion, записан в Java. @PrepareForTest
-аннотации для этих классов установлены правильно (все остальные тесты работают должным образом)
Поэтому мне интересно, пропустил ли я что-то или это проблема с сопоставителями Mockito, о которых я не знаю?