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