我正在查看junit测试的文档,但我无法理解将测试定义为public的需要。是否有人可以分享这方面的信息?
我在https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.java
上阅读但我仍然不清楚原因。
我的意思是为什么我不能写一些东西
@Test
private void testAdd(){ }
答案 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方法是私有的,它将无法做到这一点。