是否可以使用EasyMock做类似的事情:
class ClassName{
void method(){
TypeToMock a = new TypeToMock();
}
}
我希望模拟TypeToMock
而不将其作为值传递给类ClassName
。可能吗?如果是这样的话?
答案 0 :(得分:1)
不,我不认为这是可能的。
如果你想模拟一个依赖项,那么你必须将该依赖项注入到被测试的类中,或者通过构造函数,通过setter方法,或者直接注入你想要作为参数测试的方法。
如果你的类使用new
创建它并且只执行一次,那么你应该使用最适合范围匹配的方法注入依赖项。
如果您的类使用new
多次创建对象,那么您可以注入一个生成对象实例的工厂。然后你可以提供一个生成模拟实例的模拟工厂。