public class OneClass {
private AnotherClass anotherClass = new AnotherClass();
private void doOneJob(){
anotherClass.doOtherJob();
}
}
在上面的代码中,AnotherClass被实例化并保存为OneClass的类变量。
答案 0 :(得分:4)
这称为组成,是Java语言的基本组成部分。没什么问题,在很多情况下可能是必不可少的。
我唯一要做的更改是使用依赖项注入来简化测试,即,您可以通过以下方式提供模拟AnotherClass
对象:-
public class OneClass {
private AnotherClass anotherClass;
public OneClass(AnotherClass anotherClass){
this.anotherClass = anotherClass;
}
private void doOneJob() {
anotherClass.doOtherJob();
}
}
答案 1 :(得分:0)
很难“单元”测试,因为您不能以正常方式模拟“外部”依赖项。 (例如,对于常规测试,您可以使用模拟覆盖私有字段)
我认为最好有一个接受AnotherClass
的构造函数,而不是可以通过构造函数在单元测试中对其进行模拟。