如何在单元测试中使用外部数据?

时间:2009-06-23 15:25:54

标签: unit-testing tdd nunit

我有很多单元测试需要大量的txt,data,html等文件。外部存储这些文件使得更新测试用例以及添加新的测试用例等更加容易。

然而,在单元测试中具有依赖性会给不同系统和不同测试运行器带来很多麻烦。

最佳做法是什么?

  1. 外部存放它们 相对链接这些文件 代码? (造成一些问题 测试跑步者,或需要额外的 构造
  2. 将所有这些文件嵌入到 单元测试dll并从那里读取 (使创建测试更加
  3. 以硬编码方式存储 位置(显然造成这么多 检查代码时出现问题 在另一个地方
  4. 你如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

我在测试项目中使用本地文件夹,并使用以下代码获取测试文件:

public static FileInfo GetTestFileInfo(string fileName)
{
    var dir = AppDomain.CurrentDomain.BaseDirectory;
    return new FileInfo(dir + @"\..\..\TestData\" + fileName);
}

哦,是的,我正在使用MbUnit。

答案 1 :(得分:0)

我的做法是将测试资源嵌入到单元测试程序集中,然后使用GetManifestResourceStream将它们拉出来。

NUnit测试无论如何都是面向夹具的,所以一旦你设置了夹具(,一组特定的资源),就很容易添加额外的测试。