TestCaseAttribute serves the dual purpose of marking a method with parameters as a test method and providing inline data to be used when invoking that method. Here is an example of a test being run three times, with three different sets of data:
Code: Select all
[TestCase(12,3,4)]
[TestCase(12,2,6)]
[TestCase(12,4,3)]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}
TestCaseAttribute may appear one or more times on a test method, which may also carry other attributes providing test data, such as the FactoriesAttribute. The method may optionally be marked with the TestAttribute as well.
By using the named parameter Result this test set may be simplified further:
Code: Select all
[TestCase(12,3, Result=4)]
[TestCase(12,2, Result=6)]
[TestCase(12,4, Result=3)]
public int DivideTest(int n, int d)
{
return( n / d );
}
TestCaseAttribute supports a number of additional named parameters, which may be used as follows:
Description
- Sets the description property of the test
- Specifies a the Type of an exception that should be thrown by this invocation
- Specifies a the FullName of an exception that should be thrown by this invocation
- Specifies the message text of the expected exception
- A MessageMatch enum value indicating how to test the expected message (See ExpectedExceptionAttribute)
- The expected result to be returned from the method, which must have a compatible return type.
TestName
- Provides a name for the test. If not specified, a name is generated based on the method name and the arguments provided