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

时间:2014-04-05 04:12:56

标签: c# excel unit-testing

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

我使用Visual Studio 2012 C#。

到目前为止,我已阅读了几篇文章,似乎我无法简单地创作 一个单元测试项目,然后引用主要的excel工作簿项目, 因为它取决于interop excel。

这是一个有效的解决方案,如果没有,请你提出建议:

1)我可以将我的主项目分成两部分:excel工作簿项目+ dll项目 那将包含逻辑。 excel工作簿项目将引用dll项目。

2)然后我可以创建单元测试项目并引用dll项目。我可以创造 我自己的excel文件,并为我的excel阅读功能创建单元测试 dll项目。

1 个答案:

答案 0 :(得分:1)

这取决于您是否要测试:

    主项目创建的工作簿的
  1. 内容。 OR
  2. 生成正确工作簿的逻辑。
  3. 对于这两种情况,您都不需要将项目分为Main&图书馆。具有正确分离逻辑的单个项目应该足够好。通过正确分离的逻辑,我的意思是基于接口的类来做Excel的东西,不会干扰测试等。

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

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

      1. 调用核心逻辑类/方法来创建特定于测试的工作簿,然后验证其内容。
      2. 确保在任何一种情况下都删除工作簿。

        #1&的唯一区别#2是你单元测试一个级别的代码。

        e.g。你的主要逻辑是:

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