Maybe I’ve been living under a rock, but I just found out that the latest versions of NUnit support [RowTest]! Over the weekend, I was about to replace NUnit with mbUnit because I need [RowTest], but thankfully, after a bit of surfing, I found this post by David Hayden (dated December 2007). David’s post described an add-in for NUnit that has since been rolled into NUnit proper.
Step 1: Download / install NUnit version 2.4.7 or newer.
Step 2: Add a reference to NUnit.framework.dll and NUnit.framework.extensions.dll.
Step 3: Add using NUnit.Framework and using NUnit.Framework.Extensions to your test class. I include SyntaxHelpers because I like using the .That(condition, Is.) syntax.
Step 4: Decorate your tests with [RowTest], add individual cases and add parameters to your test that match the data from the test cases.
[RowTest]
[Row("foo", false, true)]
[Row("", false, false)]
[Row(null, false, false)]
[Row("___-__-____", false, true)]
[Row("___-__-____", true, false)]
public void testRequiredFieldValidator(string data, bool ignoreChars, bool result)
{
var rule = new RequiredFieldValidationRule("test field");
rule.IgnoreMaskCharacters = ignoreChars;
ValidationResult temp = rule.Validate(data, CultureInfo.CurrentCulture);
Assert.That(temp.IsValid, Is.EqualTo(result));
}
Step 5: Run
Notes: I did have to download the a new version of TestDriven.net, but other than that, it was a pretty simple process.