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.