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

Jag*_*ori 9 junit junit4

我正在浏览junit测试的文档,但我无法理解将测试定义为public的需要.是否有人可以分享一些关于此的信息?

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

但我仍然不清楚原因.

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

@Test
private void testAdd(){ }
Run Code Online (Sandbox Code Playgroud)

Bil*_*ard 6

JUnit框架从测试类外部调用您的测试方法.如果您的测试方法是私有的,则无法执行此操作.

  • @Jagori 私有测试方法的用例是什么?测试方法的目的是由 JUnit 框架运行,因此拥有私有方法是没有用的。如果您需要不能从类外部直接访问的代码,您可以在您的测试类中编写私有的非测试方法,然后由测试方法调用这些方法。 (2认同)
  • 通常,测试不包含在已发布的工件中,因此无法使用. (2认同)

Sin*_*dre 6

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

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

  • 这对于 JUnit 5 是正确的,但对于 JUnit 4 则不然(问题被标记为 JUnit 4)。因此,如果您想编写非公开的测试方法,请考虑升级到 JUnit 5。 (7认同)