用Excel工作簿进行unit testing

我开始进入更多的unit testing。 我有一个项目,Excel是“引擎”,它不能被取出(在这个时候)。 我需要为工作簿提供各种input,在工作簿中运行macros,然后收集结果。 这是一个巨大的讨厌的工作簿,所以从中取出任何东西都不是现在的select。

所以考虑到主要的依赖是Excel.Interop对象,我该如何设置unit testing几乎所有的代码都击中Excel?

从理论上讲,“unit testing”应尽可能less地进行testing,尽可能多地依赖于嘲弄。 使用Excel可能非常棘手,如果不是不可能的话。

理想情况下,我会认为testing将是:

  • unit testing你的应用程序逻辑,通过提供一个“模拟”(简单的说完成)抽象出Excel来查找特定的input并提供硬编码的输出。 基本思想是“我的投入是否有效”和“我是否返回了所有需要的产出”
  • 通过提供硬编码的input并validation输出,unit testingExcel中的Excelmacros。

Interop把图片拿出来,让你单独testing那些部分。

把它放在一起更像是一个unit testing的集成testing (通常不是自动的)。

这将是艰难的。 一种开始的方法是增加另一个抽象层次。 围绕excel依赖关系进行封装,然后将其模拟出来。

这听起来像你不会买你太多,因为你说这真的很讨厌。 这听起来像你有很多重构要做。