
为JUnit 5修改方法和类的可见性
为JUnit 5修改方法和类的可见性
编程的乐趣之一是需要不断地学习以保持更新。其中一个问题是,我们建立了熟悉的使用模式,这可能会影响新方法的采用。Sensei ,通过识别废弃的模式并提示我们继续使用的修复方法来帮助迁移。
举个例子,当我从JUnit 4迁移到JUnit 5时,我习惯于把所有的测试类和方法写成公共的。但在JUnit 5中,它们可以被打包为私有。
例如:而不是
public class Junit5VisibilityTest {
@Test
public void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我真的想写。
class Junit5VisibilityTest {
@Test
void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我花了一些时间来建立肌肉记忆,以编码到这一点,而且我仍然偶尔会失误。
使用Sensei
通过Sensei ,我可以创建配方,找到公共方法和类,并自动将声明修改为包的私有。
为了实现这一目标,我创建了一个配方。
名称 - JUnit。JUnit 5测试方法不需要公开
说明 - JUnit 5测试方法不需要公开可见性
等级 - 错误
我把它归类为错误,因为我想杜绝这种编码做法,而且当我在IDE中写代码时,我希望这个问题有更高的可见度。
修改集体宣言
为了找到类,我从Junit 5(即org.junit.jupiter.api.Test)中搜索有@Test子注解的任何类。
而在该类有修饰符public的地方。
search:
class:
with:
child:
annotation:
type:"org.junit.jupiter.api.Test"
修改器。"公共"
然后快速修复改变修改器,删除可见性,使其成为默认值,而默认值是包的私有性,这正是我所寻找的。
availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility:""
修改方法声明
方法声明修正案的配方与类的配方基本相同。
首先,我搜索了JUnit 5中用@Test注解的公共方法。
搜索:
方法:
注释:
类型。"org.junit.jupiter.api.Test"
修改器。"公共"
然后我把修改器改成默认的可见性。
availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility:""
提示:修改多种方法
Sensei 有能力对当前文件中的所有违规行为应用快速修复。
当我使用alt+enter来应用QuickFix时。
如果我展开QuickFix的名称菜单,我可以看到一个选项,即:。
"修复所有:'JUnit。JUnit 5测试方法不需要是公共的'文件中的问题"
当我选择该选项时,那么Sensei 将修正所有出现的问题,而不仅仅是我选择的那个。

修改类别
与方法不需要公开一样,类也不需要公开。
我可以创建一个配方和一个QuckFix来修改类。
名称 - JUnit。Junit 5测试类不需要是公共的
说明 - Junit 5测试类不需要是公共的
等级 - 错误
当我找到一个公有的类,并且有一个带有@Test注解的方法。然后我想改变其可见性。
搜索:
class:
modifier:"public"
anyOf:
- child:
method:
annotation:
type:"测试"
我可以再次用changeModifiers动作对类的定义进行修改。
availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility:""
摘要
一个静态分析工具最初提醒我注意JUnit中推荐的这种方法。但静态分析工具并没有帮助我建立肌肉记忆,在编程时改变我的代码。
使用 "级别 "来提醒你。当它是一个我试图在我的编码中杜绝的问题时,我最初把它定为 "错误",然后在我放弃编码方法时减少它。
请记住,你可以使用Sensei ,在应用快速修复时使用下拉菜单选项,同时修复当前文件的所有问题。
通过创建一个Sensei ,我可以实时看到我以前的编码方法。而且,如果我在编码中偶尔出现失误,可以快速修复它,以加强该方法。
---
你可以使用 "Preferences \ Plugins"(Mac)或 "Settings \ Plugins"(Windows)从IntelliJ内部安装Sensei ,然后只要搜索 "sensei secure code"。
这方面的源代码和配方可以在Secure Code Warrior GitHub账户的`sensei-blog-examples`仓库中的`junitexamples`模块中找到。
Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
预定一个演示Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。


为JUnit 5修改方法和类的可见性
编程的乐趣之一是需要不断地学习以保持更新。其中一个问题是,我们建立了熟悉的使用模式,这可能会影响新方法的采用。Sensei ,通过识别废弃的模式并提示我们继续使用的修复方法来帮助迁移。
举个例子,当我从JUnit 4迁移到JUnit 5时,我习惯于把所有的测试类和方法写成公共的。但在JUnit 5中,它们可以被打包为私有。
例如:而不是
public class Junit5VisibilityTest {
@Test
public void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我真的想写。
class Junit5VisibilityTest {
@Test
void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我花了一些时间来建立肌肉记忆,以编码到这一点,而且我仍然偶尔会失误。
使用Sensei
通过Sensei ,我可以创建配方,找到公共方法和类,并自动将声明修改为包的私有。
为了实现这一目标,我创建了一个配方。
名称 - JUnit。JUnit 5测试方法不需要公开
说明 - JUnit 5测试方法不需要公开可见性
等级 - 错误
我把它归类为错误,因为我想杜绝这种编码做法,而且当我在IDE中写代码时,我希望这个问题有更高的可见度。
修改集体宣言
为了找到类,我从Junit 5(即org.junit.jupiter.api.Test)中搜索有@Test子注解的任何类。
而在该类有修饰符public的地方。
search:
class:
with:
child:
annotation:
type:"org.junit.jupiter.api.Test"
修改器。"公共"
然后快速修复改变修改器,删除可见性,使其成为默认值,而默认值是包的私有性,这正是我所寻找的。
availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility:""
修改方法声明
方法声明修正案的配方与类的配方基本相同。
首先,我搜索了JUnit 5中用@Test注解的公共方法。
搜索:
方法:
注释:
类型。"org.junit.jupiter.api.Test"
修改器。"公共"
然后我把修改器改成默认的可见性。
availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility:""
提示:修改多种方法
Sensei 有能力对当前文件中的所有违规行为应用快速修复。
当我使用alt+enter来应用QuickFix时。
如果我展开QuickFix的名称菜单,我可以看到一个选项,即:。
"修复所有:'JUnit。JUnit 5测试方法不需要是公共的'文件中的问题"
当我选择该选项时,那么Sensei 将修正所有出现的问题,而不仅仅是我选择的那个。

修改类别
与方法不需要公开一样,类也不需要公开。
我可以创建一个配方和一个QuckFix来修改类。
名称 - JUnit。Junit 5测试类不需要是公共的
说明 - Junit 5测试类不需要是公共的
等级 - 错误
当我找到一个公有的类,并且有一个带有@Test注解的方法。然后我想改变其可见性。
搜索:
class:
modifier:"public"
anyOf:
- child:
method:
annotation:
type:"测试"
我可以再次用changeModifiers动作对类的定义进行修改。
availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility:""
摘要
一个静态分析工具最初提醒我注意JUnit中推荐的这种方法。但静态分析工具并没有帮助我建立肌肉记忆,在编程时改变我的代码。
使用 "级别 "来提醒你。当它是一个我试图在我的编码中杜绝的问题时,我最初把它定为 "错误",然后在我放弃编码方法时减少它。
请记住,你可以使用Sensei ,在应用快速修复时使用下拉菜单选项,同时修复当前文件的所有问题。
通过创建一个Sensei ,我可以实时看到我以前的编码方法。而且,如果我在编码中偶尔出现失误,可以快速修复它,以加强该方法。
---
你可以使用 "Preferences \ Plugins"(Mac)或 "Settings \ Plugins"(Windows)从IntelliJ内部安装Sensei ,然后只要搜索 "sensei secure code"。
这方面的源代码和配方可以在Secure Code Warrior GitHub账户的`sensei-blog-examples`仓库中的`junitexamples`模块中找到。

为JUnit 5修改方法和类的可见性
编程的乐趣之一是需要不断地学习以保持更新。其中一个问题是,我们建立了熟悉的使用模式,这可能会影响新方法的采用。Sensei ,通过识别废弃的模式并提示我们继续使用的修复方法来帮助迁移。
举个例子,当我从JUnit 4迁移到JUnit 5时,我习惯于把所有的测试类和方法写成公共的。但在JUnit 5中,它们可以被打包为私有。
例如:而不是
public class Junit5VisibilityTest {
@Test
public void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我真的想写。
class Junit5VisibilityTest {
@Test
void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我花了一些时间来建立肌肉记忆,以编码到这一点,而且我仍然偶尔会失误。
使用Sensei
通过Sensei ,我可以创建配方,找到公共方法和类,并自动将声明修改为包的私有。
为了实现这一目标,我创建了一个配方。
名称 - JUnit。JUnit 5测试方法不需要公开
说明 - JUnit 5测试方法不需要公开可见性
等级 - 错误
我把它归类为错误,因为我想杜绝这种编码做法,而且当我在IDE中写代码时,我希望这个问题有更高的可见度。
修改集体宣言
为了找到类,我从Junit 5(即org.junit.jupiter.api.Test)中搜索有@Test子注解的任何类。
而在该类有修饰符public的地方。
search:
class:
with:
child:
annotation:
type:"org.junit.jupiter.api.Test"
修改器。"公共"
然后快速修复改变修改器,删除可见性,使其成为默认值,而默认值是包的私有性,这正是我所寻找的。
availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility:""
修改方法声明
方法声明修正案的配方与类的配方基本相同。
首先,我搜索了JUnit 5中用@Test注解的公共方法。
搜索:
方法:
注释:
类型。"org.junit.jupiter.api.Test"
修改器。"公共"
然后我把修改器改成默认的可见性。
availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility:""
提示:修改多种方法
Sensei 有能力对当前文件中的所有违规行为应用快速修复。
当我使用alt+enter来应用QuickFix时。
如果我展开QuickFix的名称菜单,我可以看到一个选项,即:。
"修复所有:'JUnit。JUnit 5测试方法不需要是公共的'文件中的问题"
当我选择该选项时,那么Sensei 将修正所有出现的问题,而不仅仅是我选择的那个。

修改类别
与方法不需要公开一样,类也不需要公开。
我可以创建一个配方和一个QuckFix来修改类。
名称 - JUnit。Junit 5测试类不需要是公共的
说明 - Junit 5测试类不需要是公共的
等级 - 错误
当我找到一个公有的类,并且有一个带有@Test注解的方法。然后我想改变其可见性。
搜索:
class:
modifier:"public"
anyOf:
- child:
method:
annotation:
type:"测试"
我可以再次用changeModifiers动作对类的定义进行修改。
availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility:""
摘要
一个静态分析工具最初提醒我注意JUnit中推荐的这种方法。但静态分析工具并没有帮助我建立肌肉记忆,在编程时改变我的代码。
使用 "级别 "来提醒你。当它是一个我试图在我的编码中杜绝的问题时,我最初把它定为 "错误",然后在我放弃编码方法时减少它。
请记住,你可以使用Sensei ,在应用快速修复时使用下拉菜单选项,同时修复当前文件的所有问题。
通过创建一个Sensei ,我可以实时看到我以前的编码方法。而且,如果我在编码中偶尔出现失误,可以快速修复它,以加强该方法。
---
你可以使用 "Preferences \ Plugins"(Mac)或 "Settings \ Plugins"(Windows)从IntelliJ内部安装Sensei ,然后只要搜索 "sensei secure code"。
这方面的源代码和配方可以在Secure Code Warrior GitHub账户的`sensei-blog-examples`仓库中的`junitexamples`模块中找到。

点击下面的链接,下载本资料的 PDF 文件。
Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
查看报告预定一个演示Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。
为JUnit 5修改方法和类的可见性
编程的乐趣之一是需要不断地学习以保持更新。其中一个问题是,我们建立了熟悉的使用模式,这可能会影响新方法的采用。Sensei ,通过识别废弃的模式并提示我们继续使用的修复方法来帮助迁移。
举个例子,当我从JUnit 4迁移到JUnit 5时,我习惯于把所有的测试类和方法写成公共的。但在JUnit 5中,它们可以被打包为私有。
例如:而不是
public class Junit5VisibilityTest {
@Test
public void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我真的想写。
class Junit5VisibilityTest {
@Test
void thisDoesNotNeedToBePublic(){
Assertions.assertTrue(true);
}
}
我花了一些时间来建立肌肉记忆,以编码到这一点,而且我仍然偶尔会失误。
使用Sensei
通过Sensei ,我可以创建配方,找到公共方法和类,并自动将声明修改为包的私有。
为了实现这一目标,我创建了一个配方。
名称 - JUnit。JUnit 5测试方法不需要公开
说明 - JUnit 5测试方法不需要公开可见性
等级 - 错误
我把它归类为错误,因为我想杜绝这种编码做法,而且当我在IDE中写代码时,我希望这个问题有更高的可见度。
修改集体宣言
为了找到类,我从Junit 5(即org.junit.jupiter.api.Test)中搜索有@Test子注解的任何类。
而在该类有修饰符public的地方。
search:
class:
with:
child:
annotation:
type:"org.junit.jupiter.api.Test"
修改器。"公共"
然后快速修复改变修改器,删除可见性,使其成为默认值,而默认值是包的私有性,这正是我所寻找的。
availableFixes:
- name: "remove public visibility from JUnit 5 Test class"
actions:
- changeModifiers:
visibility:""
修改方法声明
方法声明修正案的配方与类的配方基本相同。
首先,我搜索了JUnit 5中用@Test注解的公共方法。
搜索:
方法:
注释:
类型。"org.junit.jupiter.api.Test"
修改器。"公共"
然后我把修改器改成默认的可见性。
availableFixes:
- name: "Remove @Test method public visibility"
actions:
- changeModifiers:
visibility:""
提示:修改多种方法
Sensei 有能力对当前文件中的所有违规行为应用快速修复。
当我使用alt+enter来应用QuickFix时。
如果我展开QuickFix的名称菜单,我可以看到一个选项,即:。
"修复所有:'JUnit。JUnit 5测试方法不需要是公共的'文件中的问题"
当我选择该选项时,那么Sensei 将修正所有出现的问题,而不仅仅是我选择的那个。

修改类别
与方法不需要公开一样,类也不需要公开。
我可以创建一个配方和一个QuckFix来修改类。
名称 - JUnit。Junit 5测试类不需要是公共的
说明 - Junit 5测试类不需要是公共的
等级 - 错误
当我找到一个公有的类,并且有一个带有@Test注解的方法。然后我想改变其可见性。
搜索:
class:
modifier:"public"
anyOf:
- child:
method:
annotation:
type:"测试"
我可以再次用changeModifiers动作对类的定义进行修改。
availableFixes:
- name: "Remove @Test class public visibility"
actions:
- changeModifiers:
visibility:""
摘要
一个静态分析工具最初提醒我注意JUnit中推荐的这种方法。但静态分析工具并没有帮助我建立肌肉记忆,在编程时改变我的代码。
使用 "级别 "来提醒你。当它是一个我试图在我的编码中杜绝的问题时,我最初把它定为 "错误",然后在我放弃编码方法时减少它。
请记住,你可以使用Sensei ,在应用快速修复时使用下拉菜单选项,同时修复当前文件的所有问题。
通过创建一个Sensei ,我可以实时看到我以前的编码方法。而且,如果我在编码中偶尔出现失误,可以快速修复它,以加强该方法。
---
你可以使用 "Preferences \ Plugins"(Mac)或 "Settings \ Plugins"(Windows)从IntelliJ内部安装Sensei ,然后只要搜索 "sensei secure code"。
这方面的源代码和配方可以在Secure Code Warrior GitHub账户的`sensei-blog-examples`仓库中的`junitexamples`模块中找到。
目录
Alan Richardson拥有超过20年的专业IT经验,他曾作为一名开发人员,在测试层次的各个层面工作,从测试员到测试主管。在Secure Code Warrior ,他是开发者关系主管,直接与团队合作,以改善高质量安全代码的开发。Alan是四本书的作者,包括 "Dear Evil Tester "和 "Java For Testers"。艾伦还创建了在线培训courses ,帮助人们学习技术网络测试和用Java编写的Selenium WebDriver。Alan在SeleniumSimplified.com、EvilTester.com、JavaForTesters.com和CompendiumDev.co.uk上发布他的写作和培训视频。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
预定一个演示下载资源
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.
安全代码培训主题和内容
Our industry-leading content is always evolving to fit the ever changing software development landscape with your role in mind. Topics covering everything from AI to XQuery Injection, offered for a variety of roles from Architects and Engineers to Product Managers and QA. Get a sneak peek of what our content catalog has to offer by topic and role.
资源
Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI
While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.






