如何对 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 项目。

如何对 Excel 工作簿项目进行单元测试

这取决于您是否要测试:

  1. 主项目创建的工作簿的内容。或
  2. 用于生成正确工作簿的逻辑。

对于这两种情况,您都不需要将项目分离到 Main & Library 中。具有正确分离逻辑的单个项目应该足够好。通过正确分离的逻辑,我的意思是基于接口的类来做 Excel 的东西,不会干扰测试等。

现在对于 #1,来自单元测试:

  1. 调用主项目的方法以在指定路径中创建预期的工作簿。
  2. 通过从此路径读取 Excel 文件并验证内容来继续单元测试。

对于 #2,来自单元测试:

  1. 调用核心逻辑类/方法以创建特定于测试的工作簿,然后验证其内容。

确保在这两种情况下都删除工作簿。

#

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.
}