Mockito / Powermock:匹配器any()错误地不匹配(但anyOrNull()匹配)>

问题描述 投票:0回答:1

我正在用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())但我收到此错误:比较...

android kotlin mockito junit4 powermockito
1个回答
0
投票

这似乎是在PowerMock中使用参数匹配器的推荐方法:

© www.soinside.com 2019 - 2024. All rights reserved.