当前位置: 首页 > 知识库问答 >
问题:

使用mockito模拟嵌套方法调用

云和硕
2023-03-14

我有4个类让说A,B,C,D,每一个调用的方法从另一个。

现在我已经模拟了类A,并想使用mockito模拟一个方法

A a = Mockito.mock(A.class);

但得到nullPointerException

然后我试着

doReturn(“foo”).When(A.getb().getc().getd());

但我不能一次就做到吗?如有任何帮助,我们将不胜感激。

共有1个答案

乌学博
2023-03-14

添加RETURNS_DEEP_STUBS确实起到了作用:

A a = Mockito.mock(A.class, Mockito.RETURNS_DEEP_STUBS);
 类似资料:
  • 问题内容: 我有四个让我们说A,B,C,D的类,每个类都从另一个调用方法。 现在我已经模拟了类A,并且想模拟使用嘲笑的方法 并希望在递归方法调用上获取“ foo” 应该回来 我试过了 when(a.getB()。getC()。getD())。thenReturn(“ foo”); 但是得到了nullPointerException 然后我尝试 doReturn(“ foo”)。when(a.get

  • 使用mockito模拟一个方法会确保永远不会调用被模拟的方法吗?我有一个主类,它包含一些我想为其编写单元测试的代码,还有一个单元测试类MainTest,它包含主类的单元测试。 eg: 源类: JUnit测试(使用mockito) 这项测试失败了。为什么?

  • 我对ScalaMock和嘲笑都是新手。我试图测试一个方法,它调用另一个(mocked)类中的方法,然后在返回的对象上调用方法。 详细资料: 所以我使用ScalaTest,这个测试涉及到五个类... 我正在测试的子指令 在测试中必须被嘲笑的机器 构造机器对象所需的寄存器 我创建为原始机器类的MockableMachine没有空构造函数,因此(据我所知)无法模拟 最后是我的测试类SubInstruct

  • 我是莫基托的新手。我试图通过模拟数据库交互为服务编写jnuit: 我有下面的类(只是实际类的代表) 我的测试课就像是 但是当我运行这个测试时,它仍然调用实际的db调用并从DB中检索值,而不是模拟值,我应该模拟sql连接和非默认构造函数吗?我一无所知。 -- 更新 正如人们所建议的那样,我将DAO实例化移动到我的服务构造函数中,并且还使用了Spy,但是我仍然调用了实际的DB调用而不是模拟调用。

  • 我的测试存根是 我在这里做错了什么?