1

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

        /* ... */
    }

}
4

2 回答 2

0

@Tested注释这样做:

@Tested ComplicatedClass complicatedInstance;

而已。请注意,以上内容不会进行任何模拟。它只是创建实例而不调用构造函数等的便捷方式。

如果要ComplicatedClass被嘲笑,请使用@Mocked注释:

@Mocked ComplicatedClass complicatedInstance;

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

于 2013-06-06T11:34:09.333 回答
0

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

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

于 2016-10-12T07:48:42.053 回答