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

2022-09-04 21:21:27

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

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

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

    @Test
    void testShouldVerifyLoginRequest() {
    }

输出: java.lang.Exception: Method testShouldVerifyLoginRequest() 应该是 public 的

所以

  1. 幕后发生了什么?

  2. 是使用反射还是什么?


答案 1

是的,测试运行程序在幕后使用反射来了解您的测试方法是什么以及如何调用它们。

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


答案 2

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


推荐