我正在使用 PMD 来检查java编码违规。 我正在编写自动化测试用例,并给出如下方法名称:
public void testCaseMethod_4_2_16(){
//some implementation
}
其中4_2_16是测试用例编号4.2.16
当我检查 PMD 违规时,它显示方法名称不应包含下划线,并且此违规行为显示为阻止程序根据PMD规则。 所以这是我的问题:
至于我的理解,至少我们应该避免PMD显示的前两级违规。 有关PMD规则的任何帮助将不胜感激。谢谢
答案 0 :(得分:6)
这是一个已设置的标准,以便人们可以轻松阅读彼此的代码,从而使代码更易于维护。
以下引用来自Oracle的Java code conventions网站:
一件软件的80%的终身成本用于维护。
原作者几乎不会维护任何软件。
代码约定提高了软件的可读性,使工程师能够更快更彻底地理解新代码。
答案 1 :(得分:4)
Java更喜欢 camelCase 表示法。 Java code conventions表示你应该尽可能避免在方法或变量名中使用下划线。
在您的情况下,PMD的默认优先级失败。这个规则应该是“很好的”级别,但绝对不是阻碍问题。
我建议你使用SonarQube,它重新确定了PMD规则的优先顺序,大多数情况下效果更好。您找到的规则仅在主要级别(低于阻止程序和严重级别)。
如果您对结果仍不满意,可以使用SourceMeter plugin for SonarQube,它也有不同(可能更好)的PMD规则优先级。
答案 2 :(得分:3)
虽然有很多意见,但我喜欢将生产质量保证和测试代码分开。
如果由于某种原因无法做到这一点,我宁愿停用(大部分)测试代码的警告。我认为不值得花时间使测试代码漂亮(并且方法名称中的下划线对我来说只是造型),而生产代码仍有严重警告。
答案 3 :(得分:0)
在命名标识符时允许使用java下划线。我不知道为什么PMD显示违规,但您可以停用警告并继续。在命名标识符时允许在java中使用UNDERSCORE。
我认为它可以帮到你......