我有一个类调用另一个类的方法来获取报告状态。
Class A {
private classb b = new classb();
method x() {
String xyz =b.method1( parm1, parm2)
}
}
因此,当 Junit 测试方法 x 时,在 b.method() 上获取空指针。我已经为 b 类创建了模拟并做了以下操作
Mockito.doReturn(val).when(classbMock).method1(parm1,parm2);
请帮助我如何模拟 b 类并通过它。
谢谢
最佳答案
为了模拟 b
,您需要将其提供给 A 类的实例。
至少有几种方法可以做到这一点:
- 使用像 ReflectionUtils 这样的东西在 A 中四处寻找并更改字段的值
- 给
A
一个构造函数,允许您将依赖项注入(inject)A
- 只需模拟
A.x
并假设b
有效(因为它有自己的单元测试)
我更喜欢选项 3(假设 A 依赖于被测对象而不是被测对象)。对于单元测试,我只想模拟直接依赖项,而不是所有 transient 依赖项。
关于java - 如何在java中使用mockito模拟调用类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6862110/