3

我如何为私有构造函数编写@test 类。我也想用艾玛工具覆盖它。

public final class Product {

    private Product() {

    }
}

有人可以提出一个简单的方法吗?

谢谢。

4

2 回答 2

9

测试私有方法的最好方法是使用反射

有很多方法,但我会简单地做到这一点;

@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 回答