SCW图标
英雄背景无分隔线
博客

使用重写操作向注释添加参数

艾伦-理查德森
发布于 2020 年 10 月 26 日
最后更新于 2026年3月9日

在这篇博客文章中,我们将:

  • 演示搜索和匹配注释
  • Amen 使用胡子模板进行注释

Sensei 提供了匹配有问题的代码模式,然后将其修改为商定的实现方式的能力。在此示例中,我使用不带参数的 @Disabled 作为有问题的代码模式。

禁用测试注释

从长远来看,没有指定原因的禁用测试可能会出现问题,因为我们忘记了禁用它的原因。


@Disabled
void 此测试方法没有禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

风险在于,随着时间的推移,代码库会继续发展,禁用测试的更新与代码的目的不一致,最终变得多余且无关紧要,并且可能永远不会重新启用。

在代码审查期间,我们经常会指出,添加解释性描述作为注解参数是个好主意。


@Disabled(“为演示添加原因而禁用”)
void 此测试方法已禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

老师食谱

我们可以编写一个不加解释的方法来检测何时添加 @Disabled,并编写一个快速修复来提醒我们添加解释禁用它的实际原因。

当我想到自己要做什么时,我必须:

  • 匹配不带任何参数的 Disabled 注解
  • 将 “已禁用” 注释更改为使用带有标记文本 “TODO:在此处添加描述” 的参数

创建警告食谱

我使用 Alt+Enter 来创建新的食谱。

创建一个新的配方功能

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

一般设置

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

让规则成为一种警告

查找注释

在食谱编辑器中,我更改了搜索以匹配注释。

这将突出显示预览中的所有注释。

食谱编辑

这样做之后,我想过滤注释的类型。

我可以只使用 Disabled,但我完全符合该包的课程资格,因此它只能与 JUnit 5 中的注解相匹配。因为源代码显示在预览中,所以我可以轻松地将其从实际代码中复制并粘贴进去,以避免出现任何错别字。

然后我只想匹配没有参数的注释,我可以使用 GUI 来做到这一点。

食谱设置

即搜索:

搜索:
注解:
键入:“org.junit.jupiter.api.Disabled”
没有:
参数:
-{}

创建重写快速修复操作

对于我的 QuickFix,我将使用重写操作。

我用 显示变量 向我显示 Mustache 变量并预览内容的功能。

快速修复设置

然后我添加了创建位置标记注释所需的额外代码。

添加额外的代码来创建地点标记注释

即 QuickFix:

可用修复程序:
-名称:“添加待办事项评论参数”
行动:
-重写:
到:“{{{.}} (\" TODO:在此添加描述\”)”
目标:“自我”

老师在行动

我们制作了一个简短的视频,展示了食谱创建过程的实际情况。

摘要

在构建 rewrite Quick Fix 时,我们可以更轻松地搜索要重写的代码元素,因为这样我们就可以对其进行操作的自我实体。

在此示例中,我使用重写操作来修改注释。Rewrite 是一种通用操作,可以应用于任何代码元素,是很好的浏览默认操作。

查看资源
查看资源

通过注解匹配示例,学习如何使用 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可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
艾伦-理查德森
2020年10月26日发布

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上发布他的写作和培训视频。

分享到:
领英品牌社交x 标志

在这篇博客文章中,我们将:

  • 演示搜索和匹配注释
  • Amen 使用胡子模板进行注释

Sensei 提供了匹配有问题的代码模式,然后将其修改为商定的实现方式的能力。在此示例中,我使用不带参数的 @Disabled 作为有问题的代码模式。

禁用测试注释

从长远来看,没有指定原因的禁用测试可能会出现问题,因为我们忘记了禁用它的原因。


@Disabled
void 此测试方法没有禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

风险在于,随着时间的推移,代码库会继续发展,禁用测试的更新与代码的目的不一致,最终变得多余且无关紧要,并且可能永远不会重新启用。

在代码审查期间,我们经常会指出,添加解释性描述作为注解参数是个好主意。


@Disabled(“为演示添加原因而禁用”)
void 此测试方法已禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

老师食谱

我们可以编写一个不加解释的方法来检测何时添加 @Disabled,并编写一个快速修复来提醒我们添加解释禁用它的实际原因。

当我想到自己要做什么时,我必须:

  • 匹配不带任何参数的 Disabled 注解
  • 将 “已禁用” 注释更改为使用带有标记文本 “TODO:在此处添加描述” 的参数

创建警告食谱

我使用 Alt+Enter 来创建新的食谱。

创建一个新的配方功能

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

一般设置

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

让规则成为一种警告

查找注释

在食谱编辑器中,我更改了搜索以匹配注释。

这将突出显示预览中的所有注释。

食谱编辑

这样做之后,我想过滤注释的类型。

我可以只使用 Disabled,但我完全符合该包的课程资格,因此它只能与 JUnit 5 中的注解相匹配。因为源代码显示在预览中,所以我可以轻松地将其从实际代码中复制并粘贴进去,以避免出现任何错别字。

然后我只想匹配没有参数的注释,我可以使用 GUI 来做到这一点。

食谱设置

即搜索:

搜索:
注解:
键入:“org.junit.jupiter.api.Disabled”
没有:
参数:
-{}

创建重写快速修复操作

对于我的 QuickFix,我将使用重写操作。

我用 显示变量 向我显示 Mustache 变量并预览内容的功能。

快速修复设置

然后我添加了创建位置标记注释所需的额外代码。

添加额外的代码来创建地点标记注释

即 QuickFix:

可用修复程序:
-名称:“添加待办事项评论参数”
行动:
-重写:
到:“{{{.}} (\" TODO:在此添加描述\”)”
目标:“自我”

老师在行动

我们制作了一个简短的视频,展示了食谱创建过程的实际情况。

摘要

在构建 rewrite Quick Fix 时,我们可以更轻松地搜索要重写的代码元素,因为这样我们就可以对其进行操作的自我实体。

在此示例中,我使用重写操作来修改注释。Rewrite 是一种通用操作,可以应用于任何代码元素,是很好的浏览默认操作。

查看资源
查看资源

填写下面的表格下载报告

我们希望获得您的许可,以便向您发送有关我们的产品和/或相关安全编码主题的信息。我们将始终非常谨慎地对待您的个人信息,绝不会出于营销目的将其出售给其他公司。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用“分析”Cookie。完成后,可以随意再次禁用它们。

在这篇博客文章中,我们将:

  • 演示搜索和匹配注释
  • Amen 使用胡子模板进行注释

Sensei 提供了匹配有问题的代码模式,然后将其修改为商定的实现方式的能力。在此示例中,我使用不带参数的 @Disabled 作为有问题的代码模式。

禁用测试注释

从长远来看,没有指定原因的禁用测试可能会出现问题,因为我们忘记了禁用它的原因。


@Disabled
void 此测试方法没有禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

风险在于,随着时间的推移,代码库会继续发展,禁用测试的更新与代码的目的不一致,最终变得多余且无关紧要,并且可能永远不会重新启用。

在代码审查期间,我们经常会指出,添加解释性描述作为注解参数是个好主意。


@Disabled(“为演示添加原因而禁用”)
void 此测试方法已禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

老师食谱

我们可以编写一个不加解释的方法来检测何时添加 @Disabled,并编写一个快速修复来提醒我们添加解释禁用它的实际原因。

当我想到自己要做什么时,我必须:

  • 匹配不带任何参数的 Disabled 注解
  • 将 “已禁用” 注释更改为使用带有标记文本 “TODO:在此处添加描述” 的参数

创建警告食谱

我使用 Alt+Enter 来创建新的食谱。

创建一个新的配方功能

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

一般设置

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

让规则成为一种警告

查找注释

在食谱编辑器中,我更改了搜索以匹配注释。

这将突出显示预览中的所有注释。

食谱编辑

这样做之后,我想过滤注释的类型。

我可以只使用 Disabled,但我完全符合该包的课程资格,因此它只能与 JUnit 5 中的注解相匹配。因为源代码显示在预览中,所以我可以轻松地将其从实际代码中复制并粘贴进去,以避免出现任何错别字。

然后我只想匹配没有参数的注释,我可以使用 GUI 来做到这一点。

食谱设置

即搜索:

搜索:
注解:
键入:“org.junit.jupiter.api.Disabled”
没有:
参数:
-{}

创建重写快速修复操作

对于我的 QuickFix,我将使用重写操作。

我用 显示变量 向我显示 Mustache 变量并预览内容的功能。

快速修复设置

然后我添加了创建位置标记注释所需的额外代码。

添加额外的代码来创建地点标记注释

即 QuickFix:

可用修复程序:
-名称:“添加待办事项评论参数”
行动:
-重写:
到:“{{{.}} (\" TODO:在此添加描述\”)”
目标:“自我”

老师在行动

我们制作了一个简短的视频,展示了食谱创建过程的实际情况。

摘要

在构建 rewrite Quick Fix 时,我们可以更轻松地搜索要重写的代码元素,因为这样我们就可以对其进行操作的自我实体。

在此示例中,我使用重写操作来修改注释。Rewrite 是一种通用操作,可以应用于任何代码元素,是很好的浏览默认操作。

观看网络研讨会
开始吧
了解更多

点击下面的链接并下载此资源的PDF。

Secure Code Warrior可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
对更多感兴趣?

分享到:
领英品牌社交x 标志
作者
艾伦-理查德森
2020年10月26日发布

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上发布他的写作和培训视频。

分享到:
领英品牌社交x 标志

在这篇博客文章中,我们将:

  • 演示搜索和匹配注释
  • Amen 使用胡子模板进行注释

Sensei 提供了匹配有问题的代码模式,然后将其修改为商定的实现方式的能力。在此示例中,我使用不带参数的 @Disabled 作为有问题的代码模式。

禁用测试注释

从长远来看,没有指定原因的禁用测试可能会出现问题,因为我们忘记了禁用它的原因。


@Disabled
void 此测试方法没有禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

风险在于,随着时间的推移,代码库会继续发展,禁用测试的更新与代码的目的不一致,最终变得多余且无关紧要,并且可能永远不会重新启用。

在代码审查期间,我们经常会指出,添加解释性描述作为注解参数是个好主意。


@Disabled(“为演示添加原因而禁用”)
void 此测试方法已禁用 reason () {
assertions.fail(“此测试已禁用,不应运行”);
}

老师食谱

我们可以编写一个不加解释的方法来检测何时添加 @Disabled,并编写一个快速修复来提醒我们添加解释禁用它的实际原因。

当我想到自己要做什么时,我必须:

  • 匹配不带任何参数的 Disabled 注解
  • 将 “已禁用” 注释更改为使用带有标记文本 “TODO:在此处添加描述” 的参数

创建警告食谱

我使用 Alt+Enter 来创建新的食谱。

创建一个新的配方功能

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

一般设置

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

让规则成为一种警告

查找注释

在食谱编辑器中,我更改了搜索以匹配注释。

这将突出显示预览中的所有注释。

食谱编辑

这样做之后,我想过滤注释的类型。

我可以只使用 Disabled,但我完全符合该包的课程资格,因此它只能与 JUnit 5 中的注解相匹配。因为源代码显示在预览中,所以我可以轻松地将其从实际代码中复制并粘贴进去,以避免出现任何错别字。

然后我只想匹配没有参数的注释,我可以使用 GUI 来做到这一点。

食谱设置

即搜索:

搜索:
注解:
键入:“org.junit.jupiter.api.Disabled”
没有:
参数:
-{}

创建重写快速修复操作

对于我的 QuickFix,我将使用重写操作。

我用 显示变量 向我显示 Mustache 变量并预览内容的功能。

快速修复设置

然后我添加了创建位置标记注释所需的额外代码。

添加额外的代码来创建地点标记注释

即 QuickFix:

可用修复程序:
-名称:“添加待办事项评论参数”
行动:
-重写:
到:“{{{.}} (\" TODO:在此添加描述\”)”
目标:“自我”

老师在行动

我们制作了一个简短的视频,展示了食谱创建过程的实际情况。

摘要

在构建 rewrite Quick Fix 时,我们可以更轻松地搜索要重写的代码元素,因为这样我们就可以对其进行操作的自我实体。

在此示例中,我使用重写操作来修改注释。Rewrite 是一种通用操作,可以应用于任何代码元素,是很好的浏览默认操作。

目录

下载PDF
查看资源
对更多感兴趣?

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可帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全置于首位的文化。无论您是应用安全经理、开发人员、首席信息安全官还是任何与安全相关的人员,我们都能帮助您的组织降低与不安全代码相关的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子