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

标签 java encapsulation junit5 package-private

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

JUnit 4 中的测试必须公开。

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

最佳答案

Why is the default access modifier in JUnit 5 package-private?

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

What is the benefit of changing it to package-private?

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

但是......如果你自己输入方法,那么就不要使用 public 除非你正在设计你的测试类以从其他包中继承子类,在这种情况下你会想要使您的可覆盖 测试方法成为publicprotected。当然,接口(interface) default 方法必须是 public

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

关于java - 为什么 JUnit 5 默认访问修饰符更改为 package-private,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55215949/

相关文章:

java - 使用JUnit @ResourceLock顺序执行一些测试类

java - 使用 Thymeleaf 渲染 HTML 模板时出错 'org.thymeleaf.spring5.processor.SpringInputGeneralFieldTagProcessor'

java - 如何使用 Java8s lambdas 改进日志记录机制

c - 为指向函数的指针编写一个 getter

java - 这两个类是否都支持封装和...?

java - 如何根据 JUnit 中的测试大小对测试进行分类

java - 用于 JUnit 测试的 Mockup JNDI 数据源

java - 什么 Java TLS 操作会在握手时产生 fatal error ?

java - 如何优化 SELECT DISTINCT sql 的分页?

python - 织物导入错误 : "fab task" vs. "from fabfile import task; task()"