NUnit supports defining test cases with the class TestCaseData (http://www.nunit.org/index.php?p=testCaseSource&r=2.5.9
This class allows to define a name for the test case (instead of simply using the input values in the test name), which is great in cases when the pure values are hard to tell apart.
public class MyFactoryClass
public static IEnumerable TestCases
yield return new TestCaseData( 12, 3 );
yield return new TestCaseData( 12, 2 );
yield return new TestCaseData( 0, 0 )
The TestCaseData also supports that a test/Fact may return a value that is compared against the expected value (Returns(4) in the sample). However, I don't like this because it is not obvious how the actual value is compared to the expected one.
For me it would be sufficient to support setting the name of the test.