Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么时候应该在单元测试中外部化XML片段?_Java_Unit Testing_Embedding - Fatal编程技术网

Java 什么时候应该在单元测试中外部化XML片段?

Java 什么时候应该在单元测试中外部化XML片段?,java,unit-testing,embedding,Java,Unit Testing,Embedding,我和一位同事就单元测试中使用的XML片段应该存在于测试文件中还是应该外部化进行了一场有趣的辩论 在一些测试中,我们使用完整的XML文件作为输入,而在另一些测试中,我们使用片段来测试部分处理,片段的长度可能是5行左右 我的同事主张将XML保留在那里,以便它与本质上依赖于它的测试代码并行。我个人反对两件主要事情:在源代码中嵌入XML造成的尴尬(有趣的格式、潜在的换行问题、必须转义字符等)以及大量XML对源文件的纵向影响 我很好奇,是否有任何具体的研究表明在源代码管理中最小化垂直使用的好处,或者是否有

我和一位同事就单元测试中使用的XML片段应该存在于测试文件中还是应该外部化进行了一场有趣的辩论

在一些测试中,我们使用完整的XML文件作为输入,而在另一些测试中,我们使用片段来测试部分处理,片段的长度可能是5行左右

我的同事主张将XML保留在那里,以便它与本质上依赖于它的测试代码并行。我个人反对两件主要事情:在源代码中嵌入XML造成的尴尬(有趣的格式、潜在的换行问题、必须转义字符等)以及大量XML对源文件的纵向影响


我很好奇,是否有任何具体的研究表明在源代码管理中最小化垂直使用的好处,或者是否有任何有力的论据支持这两种方法,而不仅仅是基于观点的。我是一个重度IDE用户(IntelliJ),因此对于更多面向CLI的用户来说,可能存在一些我没有考虑过的问题?

没有硬性规定,但Java中缺少原始字符串使它看起来很难看。另一方面,除非您实际测试XML解析,否则我只会将外部XML文件用于回归和集成测试,而将普通java代码(带或不带构建器)用于所有其他用例。它更容易在测试用例之间重用,并且在重构时需要更少的修改-IDE将在代码中进行必要的更改,但不会在XML文件/字符串中进行更改