为什么 JUnit 5 默认访问修饰符更改为 package-private
Why JUnit 5 default access modifier changed to package-private
为什么 JUnit 5 包中的默认访问修饰符是私有的?
JUnit 4 中的测试必须是 public。
改成package-private有什么好处?
这是 JUnit 5 feature,它为测试 classes 和方法
提供了更好的封装
Make Jupiter tests package private #679
测试class主要位于class测试的same package:
better way is to place the tests in a separate parallel directory structure with package alignment.
main/ test/
com/ com/
xyz/ xyz/
SomeClass.java SomeClassTests.java
This approach allows test code to access all the public and package visible members of the classes under test.
Why is the default access modifier in JUnit 5 package-private?
这不是 "default"。技术上没有默认值。相反,在 JUnit Jupiter 中,您可以选择:public
、protected
或 package-private.
What is the benefit of changing it to package-private?
好处是您不再有类型 public
。如果你的 IDE 自动为你生成测试方法和测试 类 public
,请随意留下它们 public
.
但是......如果你自己输入方法,那么就不要 public
除非你正在设计你的测试 类 以从其他包进行子类化,在这种情况下你想要使您的 可覆盖 测试方法 public
或 protected
。当然,接口 default
方法必须是 public
.
长话短说:我们(JUnit 5 团队)相信原则 "Less is more",这意味着您为实现目标而输入的内容越少越好!
为什么 JUnit 5 包中的默认访问修饰符是私有的?
JUnit 4 中的测试必须是 public。
改成package-private有什么好处?
这是 JUnit 5 feature,它为测试 classes 和方法
提供了更好的封装Make Jupiter tests package private #679
测试class主要位于class测试的same package:
better way is to place the tests in a separate parallel directory structure with package alignment.
main/ test/ com/ com/ xyz/ xyz/ SomeClass.java SomeClassTests.java
This approach allows test code to access all the public and package visible members of the classes under test.
Why is the default access modifier in JUnit 5 package-private?
这不是 "default"。技术上没有默认值。相反,在 JUnit Jupiter 中,您可以选择:public
、protected
或 package-private.
What is the benefit of changing it to package-private?
好处是您不再有类型 public
。如果你的 IDE 自动为你生成测试方法和测试 类 public
,请随意留下它们 public
.
但是......如果你自己输入方法,那么就不要 public
除非你正在设计你的测试 类 以从其他包进行子类化,在这种情况下你想要使您的 可覆盖 测试方法 public
或 protected
。当然,接口 default
方法必须是 public
.
长话短说:我们(JUnit 5 团队)相信原则 "Less is more",这意味着您为实现目标而输入的内容越少越好!