You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JUnit 5测试方法可见性疑问:protected与包级私有选择困惑

JUnit 5测试方法访问权限解析

核心内容拆解

JUnit 5 放宽了对测试方法访问权限的限制,不再强制要求测试方法必须是public,允许使用以下两种权限:

  • protected修饰的测试方法:这种方法允许同包类及子类访问,完全符合JUnit 5的测试执行要求,但需要多输入protected这几个字符。
  • 包级私有测试方法:也就是Java中不写任何访问修饰符的默认权限,仅允许同包内的类访问。JUnit 5的测试引擎可以通过反射正常调用这类方法,而且因为省去了访问修饰符的编写,代码更简洁,这也是书籍推荐它的核心原因。

代码示例对比

包级私有测试方法(推荐写法):

// 无需添加任何访问修饰符,直接定义测试方法
void testUserLoginSuccess() {
    // 测试逻辑代码
}

protected修饰的测试方法:

protected void testUserLoginSuccess() {
    // 测试逻辑代码
}

补充说明

JUnit 5 之所以支持非public的测试方法,是因为它通过反射机制来调用测试方法,不需要依赖方法的访问权限来触发执行。这种设计让测试代码可以更简洁,避免了冗余的public修饰符(过去JUnit 4强制要求public,JUnit 5做了优化)。

内容的提问来源于stack exchange,提问作者divad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:07:13