
使用重写操作向注释添加参数
在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。
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上发布他的写作和培训视频。

在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。
在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。

点击下面的链接,下载本资料的 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上发布他的写作和培训视频。
在这篇博文中,我们将。
- 示范搜索和匹配注释
- 使用 "胡子 "模版来修正注释
Sensei 提供了匹配有问题的代码模式的能力,然后将其修正为商定的实现。在这个例子中,我使用没有参数的@Disabled作为有问题的代码模式。
禁用的测试注释
没有特定原因的禁用测试,从长期来看会被证明是有问题的,因为我们忘记了为什么禁用它。
@Disabled
void thisTestMethodHasNoDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
风险在于,随着时间的推移,代码库的发展,被禁用的测试没有与代码的目的同步更新,最终成为多余的和不相关的,并且可能永远不会重新启用。
在代码审查过程中,我们经常会指出,添加解释性描述作为注释参数是个好主意。
@Disabled ("Disabled to demonstrate adding a reason")
void thisTestMethodHasDisabledReason(){
Assertions.fail("This test is disabled and should not run");
}
一个Sensei 的食谱
我们可以写一个配方来检测何时在没有解释的情况下添加@Disabled,并写一个快速修复,提醒我们添加实际的理由,解释为什么我们禁用它。
当我想到我要做什么时,我必须这样做。
- 匹配没有任何参数的禁用注释
- 修改禁用注释,使之有一个带有标记文本 "TODO:在此添加描述 "的参数。
创建一个警告配方
我使用Alt+Enter来创建一个新配方。

然后在一般信息中添加基本的描述性文字。

通过使该规则成为警告,任何匹配的代码都会被突出显示,但不会显示为一个明显的错误。

寻找注释
在配方编辑器中,我改变了 "搜索 "以匹配注释。
这将突出显示预览中的所有注释。

做完这些之后,我想对注释的类型进行过滤。
我可以直接使用Disabled,但我用包对类进行了充分的限定,以便它只与JUnit 5的注释相匹配。因为源代码显示在预览中,我可以很容易地从实际代码中复制和粘贴,以避免任何错字。
然后我想只匹配没有参数的注释,我可以用GUI来做这个。

即搜索。
search:
annotation:
type: "org.junit.jupiter.api.Disabled"
without:
parameters:
- {}
创建一个重写快速修复行动
对于我的QuickFix,我将使用一个重写动作。
我使用显示变量的功能来向我显示Mustache的变量并预览内容。

然后我添加创建地方标记注释所需的额外代码。

即QuickFix。
availableFixes:
- name: "Add a todo comment parameter"
actions:
- rewrite:
to: "{{{ . }}}(\"TODO: add a description here\")"
target: "self"
实践中的Sensei
我们制作了一个简短的视频,展示了菜谱创作过程的实际情况。
摘要
在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。
在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。
目录
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.






