【发布时间】:2019-07-22 17:46:38
【问题描述】:
我有一个带有私有构造函数的实用程序类,它抛出一个非法状态异常,我想测试它是否这样做。
我尝试了一个实现构造函数的测试,但由于构造函数是私有的,因此无法在类外部访问。那么测试构造函数就没有意义了吗?
来自班级
private UtilityClass(){
throw new IllegalStateException("Utility Class");
}
来自测试类
private UtilityClass = utilityClass;
@Test(expected = IllegalStateException.class)
public void constructorTest(){
utilityClass = new UtilityClass();
}
【问题讨论】:
-
你有什么静态方法可以从外部获取实例吗?
-
"那么测试构造函数就没有意义了吗?"是的
-
您将其设为私有,以便没有人可以访问它,并且您可能在方法或构造函数之一中使用它。所以只需测试应该没问题的方法
-
我同意。你应该直接测试一个方法——如果它们可以被public访问。您的构造函数是 private,因此如果它被 public 方法使用 - 那么您应该测试这些方法以检测异常。
-
更改代码以使用接口而不是类。然后没有更多的构造函数,没有什么可测试的。
标签: java unit-testing testing junit constructor