【发布时间】:2016-02-28 14:38:16
【问题描述】:
我收到错误消息:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 参数匹配器的使用无效! 预期 0 个匹配器,记录 1 个: -> 在 *.SegmentExportingTest.happyDay(SegmentExportingTest.java:37) 如果匹配器与原始值组合,则可能会发生此异常: //不正确: someMethod(anyObject(), "原始字符串"); 使用匹配器时,所有参数都必须由匹配器提供。 例如: //正确的: someMethod(anyObject(), eq("String by matcher"));
但实际上我只在方法的参数中使用匹配器。
下一段代码是上述错误的来源。
ConfigReader configReader = mock(ConfigReader.class);
when(configReader.getSparkConfig())
.thenReturn(new SparkConf().setMaster("local[2]").setAppName("app"));
when(configReader.getHBaseConfiguration()).thenReturn(new Configuration());
SparkProfilesReader sparkProfilesReader = mock(SparkProfilesReader.class);
ProfileSegmentExporter profileSegmentExporter = mock(ProfileSegmentExporter.class);
//--
new SegmentExporting().process(configReader, sparkProfilesReader, profileSegmentExporter);
//--
InOrder inOrder = inOrder(sparkProfilesReader, profileSegmentExporter);
inOrder.verify(sparkProfilesReader).readProfiles(any(JavaSparkContext.class),
refEq(configReader.getHBaseConfiguration()));
【问题讨论】:
-
问题解决了。我在单独的行中提取了 configReader.getHBaseConfiguration() 并隐藏了问题。
标签: java testing junit mockito