如何对 Excel 工作簿项目进行单元测试
本文关键字:单元测试 项目 工作簿 Excel | 更新日期: 2023-09-27 17:56:51
如何对Excel工作簿项目进行单元测试?
我使用 Visual Studio 2012 C#。
到目前为止,我已经阅读了几篇帖子,似乎我不能简单地创建一个单元测试项目,然后引用主 Excel 工作簿项目,因为它依赖于互操作 Excel。
这是一个有效的解决方案吗,如果不是,您可以给出建议:
1)我可以将我的主要项目分为两个:excel工作簿项目+ dll项目这将包含逻辑。Excel 工作簿项目将引用 dll 项目。
2)然后我可以创建单元测试项目并引用dll项目。我可以创建我自己的 Excel 文件,并为我的 Excel 阅读函数创建单元测试,这些函数位于DLL 项目。
这取决于您是否要测试:
- 主项目创建的工作簿的内容。或
- 用于生成正确工作簿的逻辑。
对于这两种情况,您都不需要将项目分离到 Main & Library 中。具有正确分离逻辑的单个项目应该足够好。通过正确分离的逻辑,我的意思是基于接口的类来做 Excel 的东西,不会干扰测试等。
现在对于 #1,来自单元测试:
- 调用主项目的方法以在指定路径中创建预期的工作簿。
- 通过从此路径读取 Excel 文件并验证内容来继续单元测试。
对于 #2,来自单元测试:
- 调用核心逻辑类/方法以创建特定于测试的工作簿,然后验证其内容。
确保在这两种情况下都删除工作簿。
#1 和 #2 之间的唯一区别是你单元测试了另一级别的代码。
例如,您的主要逻辑将是:
public static void MainLogic()
{
string workbookFileName = ""; // read workbook path from config etc.
// validate anything
CoreClass.CreateWorkbook(workbookFileName);
// you could do additional stuff here.
}
您的示例单元测试是:
[Test]
public void MainLogicTest()
{
string workbookFileName = ""; // read workbook path from test config etc. but same path.
MainLogic();
// retrieve the workbook at workbookFileName and verify.
}