12

我正在浏览 junit 测试的文档,但无法理解将测试定义为公开的必要性。有人可以分享一些关于此的信息吗?

我在https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.java上阅读

但我仍然不清楚原因。

我的意思是为什么我不能写一些东西

@Test
private void testAdd(){ }
4

4 回答 4

9

JUnit 框架从您的测试类外部调用您的测试方法。如果您的测试方法是私有的,它将无法做到这一点。

于 2013-10-10T03:12:35.247 回答
4

“测试类、测试方法和生命周期方法不需要是公共的,但它们不能是私有的。”

参考。文档: https ://junit.org/junit5/docs/current/user-guide/#writing-tests-classes-and-methods

于 2019-10-20T21:00:46.263 回答
1

JUnit 通过反射访问您的测试方法。SecurityManager 可以控制对私有方法的访问。因此,JUnit 仅对框架访问的任何内容使用公共方法和字段。

简而言之:如果 SecurityManager 处于活动状态且不允许访问私有方法,JUnit 将无法运行私有测试方法。

于 2013-10-10T20:36:19.213 回答
0

尝试

@Test
public void testAdd(){ }

您的 testAdd 方法是私有的,它无法做到这一点。

于 2013-10-10T03:30:44.057 回答