SomeClass 实例= someService.getSomething.apply("by-something");
上面的语句在控制器中用于获取数据。我想测试控制器。所以我在测试中嘲笑上面的线,如下所示。
@模拟 私有 SomeService someService;
@模拟
私有函数
when(someService.getSomething.apply("by-something")).thenReturn(someTrigger);
现在它给我以下错误
org.mockito.exceptions.misusing.MissingMethodInitationException: when() 需要一个参数,该参数必须是“模拟上的方法调用”。 例如: when(mock.getArticles()).thenReturn(articles);
此外,出现此错误的原因可能是:
你应该像这样调用
when
方法 2 次:
@Mock
private SomeService someService;
@Mock
private Function<String, SomeTrigger> someTriggerFunction;
...
when(someService.getSomething()).thenReturn(someTriggerFunction);
when(someTriggerFunction.apply("by-something")).thenReturn(someTrigger);