我正在用Kotlin编写的Android单元测试中使用Mockito / Powermock。我有如下代码:
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()。我还验证了静态Companion对象的模拟是可行的。 (所有其他测试均按预期运行)。静态Companion类是用Kotlin编写的。被测类(称为Companion)是用Java编写的。正确设置了这些类的@PrepareForTest
注释(所有其他测试均按预期工作)
所以我想知道我是否错过了某些东西,或者这是我不知道的Mockito匹配器的问题?
我正在用Kotlin编写的Android单元测试中使用Mockito / Powermock。我的代码如下:verify(myCompanionMock,atLeastOnce())。someMethod(any(),any())但我收到此错误:比较...
这似乎是在PowerMock中使用参数匹配器的推荐方法: