如何为私有构造函数编写@test类。我也想用emma工具来覆盖它。
public final class Product {
private Product() {
}
}
有人可以提出一个简单的方法吗?
感谢。
答案 0 :(得分:7)
测试私有方法的最佳方法是使用反射。
有很多方法,但我会这么做;
@Test
public void testConstructorIsPrivate() throws Exception {
Constructor constructor = Product.class.getDeclaredConstructor();
assertTrue(Modifier.isPrivate(constructor.getModifiers()));
constructor.setAccessible(true);
constructor.newInstance();
}
这将涵盖运行coverage工具emma时的构造函数。
答案 1 :(得分:7)
我认为你不应该测试私有构造函数,因为它们是实现的一部分。仅为具有明确定义的合同的API方法编写测试。