【发布时间】:2013-03-11 16:47:53
【问题描述】:
如何对 C# 单元测试进行参数化,以便测试不是一系列类似的断言语句,而是遍历参数列表(包括预期值)并将结果与预期值进行比较?
用例:
- 此特定单元测试需要检查 XML 文档并检查 XML 元素名称列表,验证文档是否包含这些元素并且它们的值是否与预期相符
测试方法的断言部分由一系列断言组成,如下所示:
var width = output.Element(namespace + "width");
Assert.IsNotNull(width);
Assert.AreEqual(width.Value, "600");
我想避免冗余代码,而是用不同的值迭代相同的代码。如何在断言检查中定义要迭代的数据结构?
所需的数据结构是元组列表(在这种情况下包含类型(XName,字符串)的元素)。如何在 C# 中表达它?是否有一些标准的单元测试工具可以提供帮助?
更多信息:
- 使用 Visual Studio 单元测试框架 (Microsoft.VisualStudio.TestTools.UnitTesting) 和 .Net 3.5
- 我不需要使用各种参数值运行用例本身,只需要它的断言部分(上面引用的代码)
【问题讨论】:
-
你使用什么单元测试库?
-
向问题添加了信息重新单元测试框架。它是 Visual Studio 测试框架。
-
更新了问题:添加了用例描述;添加了关于 .Net 3.5 的信息。 -- 似乎在 .Net 4.0 中,答案是使用元组列表并遍历它。
标签: c# unit-testing data-structures