MSTest等效于NUnit的参数化测试?

bla*_*ter 46 nunit unit-testing mstest parameterized-unit-test

NUnit支持一项功能,您可以在其中指定一组数据输入,以便多次运行单元测试.

[RowTest]
[Row(1001,1,2,3)]
[Row(1,1001,2,3)]
[Row(1,2,1001,3)]
public void SumTests(int x, int y, int z, int expected)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

使用MSTest完成同类事物的最佳方法是什么?我找不到类似的属性集.

Isr*_*uez 36

对于那些使用MSTest2的人,可以使用DataRow + DataTestMethod:

[DataRow(Enum.Item1, "Name1", 123)]
[DataRow(Enum.Item2, "Name2", 123)]
[DataRow(Enum.Item3, "Name3", 456)]
[DataTestMethod]
public void FooTest(EnumType item, string name, string number)
{
    var response = ExecuteYourCode(item, name, number);

    Assert.AreEqual(item, response.item);
}
Run Code Online (Sandbox Code Playgroud)

更多关于它的信息

  • 这是此问题的最新答案,也是最适用的答案。 (2认同)

Jor*_*ira 21

会有帮助吗?

本周我将一些单元测试添加到由TFS管理的项目中,因此我决定使用VS2008提供的"核心"单元测试框架,不幸的是它不支持RowTests.但它有一个类似的功能叫做数据驱动单元测试.使用这种方法,实现"简单"RowTest场景会更复杂一些,但它也允许实现更复杂的场景.

  • MSTest 具有实际实现的功能。罗德里格斯的回答是最新的.. (5认同)