【发布时间】:2021-12-03 17:12:03
【问题描述】:
我有一个问题。也许这是非常基本的。我们可以这样做吗
没有在我们的测试类中实际调用方法?
我的测试课:
class Test{
Action action=new Action();
@Mock
Provider provider;
when(provider.getNames()).thenReturn(Arrays.asList("names"));
verify(provider,atLeastOnce()).getNames();
action.update();
}
如您所见,“provider”只是被模拟了,没有被显式调用。调用它的唯一方法是当我调用 action.update();我收到了错误
需要但未调用:实际上,与此模拟的交互为零。 provider.getNames()
class Action{
public void update(){
Provider provider = new Provider();
List<String> l=provider.getNames();
}
}
【问题讨论】:
-
1.如何将模拟的提供者实例传递给操作?
-
嗨@Lesiak,我没有将提供者的模拟实例传递给操作。我只是在调用 action.update()。但是,我被要求验证是否正在调用 provider.getNames() 并返回正确的 o/p。供您参考,我还添加了我的 Action 类代码
-
好吧,那是你的问题。请参阅我的更新答案。
标签: mockito