【发布时间】:2015-11-26 17:03:38
【问题描述】:
我想测试一个用作为下面的类提供抽象的包装器的类。
这意味着我需要在该类中创建一些对象,也就是说,我不通过构造函数或某些方法传递协作者。
例如,这是一个包装类:
public class Abstraction {
private ComplexClass complex;
public class Abstraction(some parameters) {
complex = new Complex(parameters);
}
}
为了能够测试这个类,我想到了创建一个返回 Complex 类对象的方法,如下所示:
public class Abstraction {
private ComplexClass complex;
public class Abstraction(parameters) {
complex = createComplex(parameters);
}
protected createComplex ComplexClass(parameters) {
return new ComplexClass(parameters);
}
}
问题是,我不能使用 Mockito 来模拟在我正在测试的类的构造函数中创建的协作者。如何克服?
我的想法是监视 SUT,以便 createComplex 返回模拟对象,但我不能这样做,因为需要先创建 SUT。这有点像死锁。
我的最终目标是测试是否调用了协作者类的某些方法。
【问题讨论】:
标签: java unit-testing mocking mockito