Когда вы используете атрибут DataTestMethod
, у вас должны быть атрибуты для каждого DataRow
[DataTestMethod]
[DataRow(1000)]
[DataRow(2000)]
// etc
public void CalculateResult(int income)
{
double expectOutput = TaxCalculator(income);
// act
SUT.GeneralTaxRule generalTaxationRule = new SUT.GeneralTaxRule(income);
double actualOutput = generalTaxationRule.getTax();
// assert
Assert.AreEqual(expectOutput, actualOutput);
Console.WriteLine(expectOutput, actualOutput);
}
Другой способ добиться того же - использовать DynamicData
атрибут
[DataTestMethod]
[DynamicData(nameof(TestData), DynamicDataSourceType.Method)]
public void CalculateResult(int income)
{
double expectOutput = TaxCalculator(income);
// act
SUT.GeneralTaxRule generalTaxationRule = new SUT.GeneralTaxRule(income);
double actualOutput = generalTaxationRule.getTax();
// assert
Assert.AreEqual(expectOutput, actualOutput);
Console.WriteLine(expectOutput, actualOutput);
}
public static IEnumerable<object[]> TestData()
{
yield return new object[] { 1000 };
yield return new object[] { 2000 };
/// etc.
}
Вы можете управлять данными, как хотите, в TestData
выше (например, файл, база данных или жестко закодированные). Есть и другие варианты для DynamicDataSourceType
, которые вы могли бы изучить.