为什么Junit测试用例(方法)应该是公开的?

时间:2016-05-04 06:22:14

标签: java junit

我只是想知道为什么测试用例(测试方法)应该是公开的 像这样

public class SpiceLoginTest {
 @Test
 public void testShouldVerifyLoginRequest() {
 }  }

但如果我从此方法中删除公共访问说明符

  @Test
  void testShouldVerifyLoginRequest() {
 }

输出:java.lang.Exception:方法testShouldVerifyLoginRequest()应该是公共的

所以

1)幕后发生了什么?

2)它是使用反射还是什么?

提前致谢

2 个答案:

答案 0 :(得分:3)

是的,测试运行员在幕后使用反射来找出你的测试方法是什么以及如何调用它们。

如果方法不是public,则调用它们可能会失败(因为SecurityManager会否决它)。

答案 1 :(得分:1)

这几乎可以肯定是因为JUnit会创建一些main类,它会为您调用所有测试方法。要打电话给他们,他们需要公开。