在java中模拟类变量值的单元测试问题
我有一个类,它有一个初始化为
public class MyClass{
private BusinessObject businessObject = BusinessObjectGenerator.getBusinessObject();
public MyClass(){
}
public Object myMethodToTest(){
return businessObject.getObject();
}
}
现在,我正在尝试单元测试myMethodToTest
,我想发送一个模拟对象来代替businessObject
。我使用mockito进行模拟,使用spy(new MyClass())
进行部分模拟,但在模拟get businessObject
的调用时遇到困难。
1.是否可以模拟对businessObject的调用?如果是,怎么做?
2.在编写单元测试时,如何重构此代码以提供帮助。任何指向这一点的资源都将大有裨益
谢谢
# 1 楼答案
要正确重构此代码,您需要:
现在,您可以在测试站点将模拟注入到类中
我建议使用依赖注入和Guice这样的框架来实现这一点。这是值得你花时间的