我开始更多地进行单元测试。我有一个项目,其中 Excel 是“引擎”并且无法取出(此时)。我需要为工作簿提供各种输入,在工作簿中运行宏,然后收集结果。这是一个巨大的讨厌的工作簿,所以现在不能从中取出任何东西。
因此,鉴于主要依赖项是 Excel.Interop 对象,我该如何设置几乎所有代码都在 Excel 中的单元测试?
我开始更多地进行单元测试。我有一个项目,其中 Excel 是“引擎”并且无法取出(此时)。我需要为工作簿提供各种输入,在工作簿中运行宏,然后收集结果。这是一个巨大的讨厌的工作簿,所以现在不能从中取出任何东西。
因此,鉴于主要依赖项是 Excel.Interop 对象,我该如何设置几乎所有代码都在 Excel 中的单元测试?
理论上,“单元测试”应该尽可能少地测试,尽可能多地模拟依赖项。如果不是不可能的话,使用 Excel 可能会非常棘手。
理想情况下,我认为测试将是:
这将 Interop 排除在外,并允许您单独对这些部分进行单元测试。
将它们放在一起更像是一个集成测试(通常不是自动化的),而不是一个单元测试。
这将是艰难的。一种开始的方法是添加另一个抽象级别。围绕 excel 依赖项制作一个包装器,然后将其模拟出来。
这听起来对你来说不会给你带来太多好处,因为你说这真的很讨厌。听起来您有很多重构工作要做。