【发布时间】:2018-08-16 04:00:37
【问题描述】:
让我们将测试文件命名为 ExecutorTest.java。在这个文件中,我们有一个单元测试用例,它像这样使用 EasyMock 模拟静态方法 -
Executor exectorInstance;
PowerMock.mockStaticPartial(SomeClass.class, "someStaticMethod", Map.class, SomeOtherClass.class);
EasyMock.expect(SomeClass.someStaticMethod(Mockito.any(Map.class), SomeOtherClassObject)).andReturn(false);
PowerMock.replayAll();
exectorInstance.execute();
Executor.java -
public void execute() {
String clientName = someObject.getInformation(); //using this string while logging the metric
logMetric(className + clientName);
if(SomeClass.someStaticMethod(someMapObject, someOtherClassObject){
// some code
}
}
我只在我的代码中添加了这一行,之后该单元测试用例开始失败并出现错误:“无效使用参数匹配器!预期 2 个匹配器,记录 1 个”错误”
String someInformation = someObject.getInformation();
我得到了这个字符串并将该字符串添加到我们已经记录的指标中。 已经开始抛出错误的行是这样的:
PowerMock.mockStaticPartial(SomeClass.class, "myStaticMethod", Map.class, SomeOtherClass.class);
我现在摸不着头脑,但无法找到根本原因。我对这种嘲弄的东西很陌生。看起来我没有对匹配器进行任何更改。我只是得到一个字符串并将该字符串添加到已经存在的指标中。我的小改动看起来与此完全无关,但不知道为什么它开始使测试用例失败。 请帮我找出原因。
【问题讨论】:
标签: unit-testing powermock easymock matcher