【发布时间】:2011-10-14 05:38:49
【问题描述】:
这是我的 c# 单元测试设计问题:
我有一个测试,我想在一些修改文件的代码上运行。我的测试将运行修改文件的代码,然后检查结果。到目前为止非常简单......
问题是,我有大约 10 个文件(很快会更多),我想针对这些文件运行相同的单元测试。我不想为每个文件写一个新的单元测试,当测试本身真的是一样的时候。
我可以编写一个测试来查询文件夹中的文件,然后对每个文件运行测试逻辑,但使用这种方法只会报告整个文件集的一个通过/失败结果。
我想创建某种动态系统,让我放置在特定文件夹中的每个文件都通过同一个单元测试运行。因此,如果文件夹中有 25 个文件,则测试运行 25 次,单元测试结果报告运行了 25 个测试,并且每个测试包括单独的通过/失败。
任何想法如何或是否可以在 c# 单元测试中完成?还是使用 nunit 测试?
谢谢!我希望这不是一个重复的问题。我环顾四周,但找不到任何东西。
【问题讨论】:
-
有些人会争辩说,涉及 IO(在这种情况下操作文件系统)的测试不是单元测试。另一种方法是将 IO 操作表示为可注入的依赖项。然而,大多数 System.IO 类型(当然还有静态)并不适合这种情况。我使用的一种方法是创建普通方法转发类型和相应接口的代理程序集。这允许您不测试这个瘦代理层,而您的逻辑层完全单元测试。 Microsoft Moles 有效地动态执行此操作,但这仍然是 WIP。
标签: c# .net unit-testing nunit