为了进行测试,我想创建一个ComplicatedClass
的新实例。实际上,创建该实例非常复杂,但是我不需要真正的构造函数来运行,也不需要任何数据。我需要的只是ComplicatedClass
的对象。我怎样才能做到这一点?
public class ComplicatedClass {
public ComplicatedClass(/* lots of dependencies */) {
}
}
@Test
public class SomeTest {
public void test1() {
ComplicatedClass complicatedInstance = /* new ComplicatedClass(); /*
AnotherClass ac = new AnotherClass(complicatedInstance);
/* ... */
}
}
最佳答案
@Tested
注释执行以下操作:@Tested ComplicatedClass complicatedInstance;
而已。请注意,上面不会做任何嘲笑。这是创建实例而不调用构造函数等的便捷方法。
如果要模拟ComplicatedClass
,请使用@Mocked
批注:@Mocked ComplicatedClass complicatedInstance;
在这种情况下,您还可以自动创建实例,但是该实例是模拟的。