当我需要处理复杂的大型XML文件时,寻找推荐的单元测试设计方法

时间:2018-09-04 17:16:25

标签: unit-testing

我正在使用Visual Studio 2017单元测试项目。

我有一个应用程序,可以读取复杂的XML文件,并根据其数据中的XPATH查询进行一些处理。我需要为我的应用程序构建一系列的单元测试。我想到以下两个选项:

选项#1 :作为单元测试项目的一部分,包括一些选定的XML文件。

创建读取文件的单元测试,并测试特定方案。 对我来说,这是最直观,最简单的选择。由于我可以在选择的XML文件中包含许多复杂的方案,因此可以根据需要对其进行更新,然后构建所有必需的单元测试。

选项#2 :创建提供特定XML数据方案的模拟类

我需要创建一些提供特定XML数据方案的模拟类。需要更新应用程序,以便它通过IoC容器中的类获取数据。

对我来说,Option#1非常简单,但是我想获得有关Option#2的更多信息

问题: 以上两个选项是否与单元测试设计最佳实践保持一致?最适合我的感觉的单元测试设计是什么?

1 个答案:

答案 0 :(得分:0)

什么是最好的取决于您的特定需求。但是,通常情况下,您会努力争取运行速度快,在不同环境(不仅是计算机)中执行,确定性的测试。

在我看来,选项#1虽然可能是最快执行的,但它对测试执行产生了负面影响(文件访问需要一些时间),使测试执行取决于环境(对文件,目录的访问权限) ?(文件名编码,...)可能导致不确定的行为(文件由于运行并行测试过程而被锁定)等。

相反,选项2最初可能会花费您更多的实施工作。但是,有一些机制可以降低其成本:您可以实施帮助程序功能来创建典型的XML内容,以便几个测试用例可以从这些常见的帮助程序功能等中受益。