为了进行测试,我想创建一个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;

在这种情况下,您还可以自动创建实例,但是该实例是模拟的。

09-30 23:34