为什么Junit中的Test方法应该被公开定义?

时间:2013-10-10 03:09:52

标签: junit junit4

我正在查看junit测试的文档,但我无法理解将测试定义为public的需要。是否有人可以分享这方面的信息?

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

上阅读

但我仍然不清楚原因。

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

@Test
private void testAdd(){ }

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

“测试类,测试方法和生命周期方法不需要公开,但不能私有。”

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

答案 3 :(得分:0)

@Test
public void testAdd(){ }

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