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

Hinzufügen von Parametern zu Anmerkungen mithilfe von Rewrite-Aktionen

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

在这篇博文中,我们将。

  • 示范搜索和匹配注释
  • 使用 "胡子 "模版来修正注释

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

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

摘要

在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。

在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。

查看资源
查看资源

Erfahren Sie, wie Sie Sensei verwenden, um problematische Codemuster abzugleichen und sie dann anhand von Beispielen für den Annotationsabgleich zu vereinbarten Implementierungen zu ändern.

想了解更多吗?

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 您的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 标志

在这篇博文中,我们将。

  • 示范搜索和匹配注释
  • 使用 "胡子 "模版来修正注释

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

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

摘要

在建立重写快速修复系统时,当我们能够搜索到我们想要重写的代码元素时,就会更容易,因为这时我们可以对它进行自我操作。

在这个例子中,我使用了一个重写动作来修改注释。重写是一个通用的动作,可以适用于任何代码元素,是一个很好的默认探索。

查看资源
查看资源

请填写下方表格以下载报告

我们恳请您允许我们向您发送有关我们产品及/或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会为营销目的将其出售给其他企业。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用“Analytics”Cookie。完成后,您可随时将其关闭。

在这篇博文中,我们将。

  • 示范搜索和匹配注释
  • 使用 "胡子 "模版来修正注释

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 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

查看报告预约演示
下载PDF文件
查看资源
分享到:
领英品牌社交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 标志

在这篇博文中,我们将。

  • 示范搜索和匹配注释
  • 使用 "胡子 "模版来修正注释

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文件
查看资源
想了解更多吗?

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 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

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

入门资源

更多文章
资源中心

入门资源

更多文章