Property data-driven unit tests
The lack of flexibility encountered when writing inline data-driven tests can be overcome through the use of property data-driven tests. Property data-driven unit tests are written in xUnit.net through the use of the MemberData
and ClassData
attributes. Using the two attributes, data theories can be created with data loaded from disparate data sources, such as files or databases.
MemberData attribute
The MemberData
attribute is used when data theories are to be created and loaded with data rows coming from following data sources:
- Static property
- Static field
- Static method
When using MemberData
, the data source must return independent object sets that are compatible with IEnumerable<object[]>
. This is because the return
property is enumerated by the .ToList()
method before the test method is executed.
The Test_CalculateLoan_ShouldReturnCorrectRate
test method in the, The benefits of data-driven unit testing section, can be refactored to use the MemberData
attribute...