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 に答える