I used to believe that Nunit’s TestCase test (that is, an ability to define a test and then simply pass it alternate parameters) was denied MSTest users. It appears that this is, at least now, fallacious.
The following article implies that this is a recent change:
This particular example is in a UWP application:
[DataTestMethod]
[DataRow(1, 2, 3, 6)]
[DataRow(8, 2, 3, 13)]
[DataRow(8, 5, 3, 12)]
public void AddNumbers(int num1, int num2, int num3, int total)
{
Assert.AreEqual(num1 + num2 + num3, total);
}
Will result in a failing test, and:
[DataTestMethod]
[DataRow(1, 2, 3, 6)]
[DataRow(8, 2, 3, 13)]
[DataRow(8, 5, 3, 16)]
public void AddNumbers(int num1, int num2, int num3, int total)
{
Assert.AreEqual(num1 + num2 + num3, total);
}
Results in a passing one.
If you want additional information relating to the test, you can use this syntax:
[DataTestMethod]
[DataRow(1, 2, 3, 6, DisplayName = "First test")]
[DataRow(8, 2, 3, 13, DisplayName = "Second test")]
[DataRow(8, 5, 3, 15, DisplayName = "This will fail")]
public void AddNumbers(int num1, int num2, int num3, int total)
{
Assert.AreEqual(num1 + num2 + num3, total);
}
Given the constant problems that I have with finding the correct NUnit test adaptor, and trying to work out which are the right libraries, I think, despite coming late to this party, MS might actually drag people back to MSTest with this.