У меня есть простой TestMethodКак включать как действительные и недействительные тестовый случай
public double Divide(double numerator, double denominator)
{
if (denominator == 0)
{
throw new NullReferenceException("Cannot divide by zero.");
}
return numerator/denominator;
}
Теперь мой файл данных TestCase выглядит как этот
<TestCase>
<Numerator>-2.5</Numerator>
<Denominator>1</Denominator>
<ExpectedResult>-2.5</ExpectedResult>
</TestCase>
<TestCase>
<Numerator>55</Numerator>
<Denominator>5</Denominator>
<ExpectedResult>11</ExpectedResult>
</TestCase>
<TestCase>
<Numerator>5</Numerator>
<Denominator>0</Denominator>
<ExpectedResult>DivideByZeroException</ExpectedResult>
</TestCase>
Что должно быть так, чтобы включить все эти testcases в один метод испытаний. Моя основная проблема заключается в обработке метода проверки исключений. Я знаю, что в тестовый метод можно использовать атрибут [ExpectedException (typeof (DivideByZeroException)], но в этом случае этот метод не подходит для других 2 тестовых csaes.
Может кто-то, пожалуйста, помогите мне, как я могу разместить все эти тестовые примеры . в единый метод
Я могу поймать DivideByZeroException исключительные возможности но как я буду подтверждать, что он подходит только для моего неверного тестового примера. Может случиться, что разработчик написал неверный код, и я получаю это исключение для действительных тестовых случаев. Пожалуйста помоги. –
Когда есть деление на 0 когда-либо действительный тестовый пример? – dcp
@dcp, когда вы убедитесь, что ваш код будет генерировать это исключение при делении на ноль. @Pritam вы можете установить некоторую контекстную переменную, информирующую вас о том, что в этом конкретном тестовом файле вы хотите, чтобы это исключение произошло. Это может быть фактический знаменатель, равный нулю. – Pedro