3

プライベート コンストラクターの @test クラスを作成するにはどうすればよいですか。私もエマツールでカバーしたいです。

public final class Product {

    private Product() {

    }
}

誰かが簡単な方法を提案できますか?

ありがとう。

4

2 に答える 2

9

プライベート メソッドをテストする最良の方法は、Reflectionを使用することです。

多くの方法がありますが、私はこれを簡単に行います。

@Test
    public void testConstructorIsPrivate() throws Exception {
      Constructor constructor = Product.class.getDeclaredConstructor();
      assertTrue(Modifier.isPrivate(constructor.getModifiers()));
      constructor.setAccessible(true);
      constructor.newInstance();
    }

これにより、カバレッジ ツール emma の実行時にコンストラクタがカバーされます。

于 2013-10-31T06:21:55.693 に答える
7

実装の一部であるため、プライベートコンストラクターをテストする必要はないと思います。明確に定義されたコントラクトを持つ API メソッドのテストのみを記述します。

于 2013-10-31T06:28:02.653 に答える