如何创建一个unsing jmockit的虚拟实例?

时间:2013-06-06 11:21:08

标签: java constructor jmockit

对于测试,我喜欢创建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);

        /* ... */
    }

}

2 个答案:

答案 0 :(得分:0)

@Tested注释可以做到这一点:

@Tested ComplicatedClass complicatedInstance;

就是这样。请注意,以上内容不会做任何嘲弄。它只是在不调用consturctors等的情况下创建实例的便捷方式。

如果您想要模拟ComplicatedClass,请使用@Mocked注释:

@Mocked ComplicatedClass complicatedInstance;

在这种情况下,您还会自动创建实例,但实例已被模拟。

答案 1 :(得分:0)

@Tested在内部实例化类对象。

但是在Junit测试用例写单例类的情况下@Tested如何在内部创建实例,因为单独的私有构造函数就在那里。