У меня есть алгоритм, который преобразует значение между целинами и farhrenheit. Для того, чтобы проверить, что она работает с широким диапазоном значений я использую TestCases NUnit как так:Как добавить допуск результата к NUnit TestCase
[TestCase(0, Result = -17.778)]
[TestCase(50, Result = 10)]
public double FahrenheitToCelsius(double val) {
return (val - 32)/1.8;
}
Проблема заключается в том, что первая TestCase терпит неудачу, потому что тесты для точного соответствия.
Одно решение, которое я нашел, чтобы сделать что-то вроде этого:
[TestCase(0, -17.778)]
[TestCase(50, 10)]
public void FahrenheitToCelsius2(double val, double expected) {
double result = (val - 32)/1.8;
Assert.AreEqual(expected, result, 0.005);
}
Но я не слишком доволен. Мой вопрос:
Можно ли определить терпимость к результату в TestCase?
Update:
Чтобы уточнить, я ищу что-то вдоль линий:
[TestCase(0, Result = 1.1, Tolerance = 0.05)]
Почему вы не просто .. добавьте еще один параметр в свой '[TestCase()]'? –
Это именно то, для чего требуется ограничение Within(), так как @Jeroen просто добавляет третий параметр в тестовый пример. Возможно, используйте четвертый, чтобы указать Ulps (Units in Last Place), если вы хотите большего контроля. См. Http://www.nunit.org/index.php?p=equalConstraint&r=2.5.5. – ClickRick