我正在浏览 junit 测试的文档,但无法理解将测试定义为公开的必要性。有人可以分享一些关于此的信息吗?
我在https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.java上阅读
但我仍然不清楚原因。
我的意思是为什么我不能写一些东西
@Test
private void testAdd(){ }
我正在浏览 junit 测试的文档,但无法理解将测试定义为公开的必要性。有人可以分享一些关于此的信息吗?
我在https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.java上阅读
但我仍然不清楚原因。
我的意思是为什么我不能写一些东西
@Test
private void testAdd(){ }
JUnit 框架从您的测试类外部调用您的测试方法。如果您的测试方法是私有的,它将无法做到这一点。
“测试类、测试方法和生命周期方法不需要是公共的,但它们不能是私有的。”
参考。文档: https ://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods
JUnit 通过反射访问您的测试方法。SecurityManager 可以控制对私有方法的访问。因此,JUnit 仅对框架访问的任何内容使用公共方法和字段。
简而言之:如果 SecurityManager 处于活动状态且不允许访问私有方法,JUnit 将无法运行私有测试方法。
尝试
@Test
public void testAdd(){ }
您的 testAdd 方法是私有的,它无法做到这一点。