我和一位同事讨论了单元测试中使用的XML片段是否应该存在于测试文件中还是应该外部化。
在某些测试中,我们有完整的XML文件用作输入,而在其他测试中,我们使用片段来测试处理的部分,片段的长度可能多于或少于5行。
我的同事主张将XML保留在那里,以便它与本质上依赖于它的测试代码并排。我个人反对两个主要的事情:在源代码中嵌入XML导致的尴尬(有趣的格式化,潜在的换行问题,必须转义字符等)以及大量XML对源文件的垂直影响。
我很好奇是否有任何关于在源代码控制中最小化垂直使用的好处的具体研究,或者是否有任何强有力的论据支持这两种不仅仅基于意见的方法。我是一个沉重的IDE用户(IntelliJ),所以对于我没有考虑过的更多面向CLI的用户来说可能有问题吗?
答案 0 :(得分:1)
没有硬规则,但Java中缺少原始字符串使它看起来很难看。另一方面,除非您实际测试XML解析,否则我将外部XML文件仅用于回归和集成测试以及普通java代码(带或不带构建器)用于所有其他用例。在测试用例之间重用更容易,并且在重构的情况下需要更少的修改 - IDE将在代码中进行必要的更改,但不在XML文件/字符串中进行更改。