我得到的錯誤信息:「使用無效的說法匹配器」,但是我用的匹配唯一
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 無效使用參數匹配器! 0的匹配預期的,1記載: - >在* .SegmentExportingTest.happyDay(SegmentExportingTest.java:37) 可能會發生此異常,如果匹配器與原始值組合: //不正確的: 的someMethod(anyObject(),「原始字符串「); 使用匹配器時,所有參數必須由匹配器提供。 例如: //正確: 的someMethod(anyObject(),當量( 「字符串由匹配器」));
但實際上我只在該方法的參數中使用匹配器。
下一個代碼是上述錯誤的來源。
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(),並且隱藏了問題。 –