使用Excel工作簿进行单元测试

时间:2013-10-14 17:40:46

标签: c# excel unit-testing

我开始进行更多的单元测试。我有一个项目,其中Excel是“引擎”,它不能被取出(此时)。我需要为工作簿提供各种输入,在工作簿中运行宏,然后收集结果。这是一本非常讨厌的工作簿,因此现在不能选择任何东西。

因此,主要依赖项是Excel.Interop对象,如何设置几乎所有代码都在使用Excel的单元测试?

2 个答案:

答案 0 :(得分:3)

理论上,“单元测试”应尽可能少地进行测试,尽可能多地模拟依赖项。使用Excel可能非常棘手,如果不是不可能的话。

理想情况下,我认为测试将是:

  • 对您的应用程序逻辑进行单元测试,通过提供“模拟”(更容易说明)来查找特定输入并提供硬编码输出,从而抽象出Excel。基本思想是“我的输入是否有效”和“我是否返回了所有必需的输出”
  • 通过提供硬编码输入和验证输出,在Excel中对Excel宏进行单元测试。

将Interop从图片中取出,让你单独测试这些部分。

将所有内容放在一起更多的是单元测试的集成测试(通常不是自动化的)。

答案 1 :(得分:0)

这将是艰难的。一种开始的方法是添加另一个抽象级别。围绕excel依赖项创建一个包装器,然后将其模拟出来。

听起来它在你的情况下不会给你太多,因为你说它真的很讨厌。听起来你有很多重构要做。