为什么 JUnit 5 默认访问修饰符更改为包私有

为什么 JUnit 5 包中的默认访问修饰符是私有的?

JUnit 4 中的测试必须是公开的。

将其更改为包私有有什么好处?


答案 1

为什么 JUnit 5 包中的默认访问修饰符是私有的?

这不是“默认”。从技术上讲,没有默认值。相反,在JUnit Jupiter中,你可以选择:,或者包私有。publicprotected

将其更改为包私有有什么好处?

好处是你不再有类型了。如果您的 IDE 自动为您生成测试方法和测试类,请随时将它们保留。publicpublicpublic

但。。。如果您自己键入方法,则请将其保留,除非您正在设计测试类以便从其他包进行子类化,在这种情况下,您希望使可重写的测试方法成为 或 。当然,接口方法必须是 .publicpublicprotecteddefaultpublic

长话短说:我们(JUnit 5团队)相信“少即是多”的原则,这意味着您需要输入的字越少即可实现目标越好!


答案 2

这是 JUnit 5 功能,它为测试类和方法提供了更好的封装

使木星测试包私有 #679

测试类主要位于所测试类的同一包中:

更好的方法是将测试放在具有包对齐的单独并行目录结构中。

main/                          test/
   com/                           com/
      xyz/                           xyz/
         						

推荐