对于测试,我喜欢创建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);
/* ... */
}
}
答案 0 :(得分:0)
@Tested
注释可以做到这一点:
@Tested ComplicatedClass complicatedInstance;
就是这样。请注意,以上内容不会做任何嘲弄。它只是在不调用consturctors等的情况下创建实例的便捷方式。
如果您想要模拟ComplicatedClass
,请使用@Mocked
注释:
@Mocked ComplicatedClass complicatedInstance;
在这种情况下,您还会自动创建实例,但实例已被模拟。
答案 1 :(得分:0)
@Tested在内部实例化类对象。
但是在Junit测试用例写单例类的情况下@Tested如何在内部创建实例,因为单独的私有构造函数就在那里。