使用Visual Studio 2015 Intellitest进行参数化单元测试

8

我很久以前就希望在MSTest中看到参数化单元测试(PUTs)功能。听说Intellitest 可以创建这些测试,我感到很兴奋。然而,我开始使用Intellitest后,发现我的PUTs定义与微软的不同。

当我想到“PUT”时,我想到的是NUnit中的TestCasesxUnit中的Theories。比我聪明得多的人们似乎也使用相同的术语

有人可以告诉我Intellitest是否能够像NUnit或xUnit一样创建PUT方法,还是这只是一个术语在Intellitest中的另一种含义,而在大多数其他测试框架中意义不同?谢谢。

3个回答

7

截至2016年6月, 这个功能已经被添加到 "MSTest V2" 中,可以通过添加 MSTest.TestAdapterMSTest.TestFramework 包来安装 NuGet:

Install-Package MSTest.TestAdapter
Install-Package MSTest.TestFramework

请注意,这些测试框架版本与例如 Visual Studio 2017 中的版本不同。要使用它们,您可能需要删除对 Microsoft.VisualStudio.QualityTools.UnitTestFramework 的引用。安装完成后,您可以像以下示例中演示的那样简单地使用 RowDataAttribute。
[TestMethod]
[DataRow(1, 1, 2)]
[DataRow(3, 3, 6)]
[DataRow(9, -4, 5)]
public void AdditionTest(int first, int second, int expected) {
  var sum = first+second;
  Assert.AreEqual<int>(expected, sum);
}

显然,在这里您不仅限于使用int。您还可以使用stringfloatbool或任何其他基本值类型

如果您熟悉Windows Store App项目之前可用的实现,则此内容与之相同。


6

1
参数化单元测试(PUT)是通过使用参数将单元测试的直接推广。 PUT针对整个可能输入值集合而不仅是单个示例输入值来发表代码行为的声明。在这种程度上,它类似于您提供的链接。其中不同之处在于当涉及生成数据以提供给参数化单元测试时 - IntelliTest可以自动生成PUT的输入数据。请参考以下内容:http://blogs.msdn.com/b/visualstudioalm/archive/2015/07/05/intellitest-one-test-to-rule-them-all.aspx以获取上下文。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接