为什么JUnit 5默认访问修饰符更改为package-private

时间:2019-03-18 06:50:38

标签: java encapsulation junit5 package-private

为什么JUnit 5 package-private中的默认访问修饰符是?

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

将其更改为package-private有什么好处?

2 个答案:

答案 0 :(得分:5)

  

为什么JUnit 5 package-private中的默认访问修饰符是?

这不是“默认”。技术上没有默认值。相反,在JUnit Jupiter中,您可以选择:publicprotected或package-private。

  

将其更改为package-private有什么好处?

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

但是...如果您要自己输入方法,则只需省略public,除非您要设计测试类以从其他包中继承子类,在这种情况下,您需要制作自己的方法。 可覆盖测试方法为publicprotected。当然,接口default方法必须是public

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

答案 1 :(得分:3)

这是JUnit 5 feature,可为测试类和方法提供更好的封装

  

使Jupiter测试包私有#679

测试类主要位于测试类的same package中:

  

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

main/                          test/
   com/                           com/
      xyz/                           xyz/
          SomeClass.java               SomeClassTests.java
     

这种方法允许测试代码访问被测试类的所有公共成员和程序包可见成员。

相关问题