是否有一些测试框架提供了一些基本代码来编写测试以验证是否存在任何重复字符串,例如测试获取所有硬编码字符串,如在java文件中定义的局部变量/实例变量等(某些包或源文件夹)与定义的常量进行比较。这样做的目的不仅仅是检查重复的字符串,还可以获得一些架构测试的基础,例如包A中定义的常量不应该在某些包中使用。
答案 0 :(得分:1)
我认为,这种测试会给团队带来更多的困惑,而不是好。将重复的字符串文字定义为单个位置的包含基本上是一种很好的做法,但如果只有一种特定值的使用,则可能是多余的。此外,如果在单个类中多次使用,一些团队更喜欢在类中存储常量。
使用静态代码分析工具(例如Sonar)更好地找出这些东西,如果你多次使用一些字符串文字而不将其定义为常量,它会突出显示。为这样的任务编写单元测试基本上是可能的,但不值得。如果您确实要这样做,则需要访问源文件并编写代码以搜索用双引号括起来的字符串文字并根据需要进行检查。
希望它有所帮助!
答案 1 :(得分:0)
考虑使用SonarQube查找重复的字符串。
对于在包A中定义且不应在包B中使用的常量,我想你最好将常量的范围缩小为private或package-private。