Вход на сайт
Резюме для программиста
89957 просмотров
Перейти к просмотру всей ветки
в ответ alex445 15.10.21 19:36, Последний раз изменено 15.10.21 19:53 (alex445)
Мне лень считать, я сделал так. Тестовые значения одинаковые для нескольких тестов - их в источник тестовых данных. Ожидаемые значения - рассчитываю - банальное сложение с базовым значением. Эта же логика и в тестируемом коде - сложение с базовым значением. Этим я повторяю логику, которую тестирую в тестируемом коде. Потом сравниваю ожидаемые и полученные в результате работы тестируемого кода.
Вот, упростил по сравнению с предыдущим примером, чтобы меньше кода было.
[TestFixture]
class CharacterStatTests
{
CharacterStat _charStat;
readonly double _baseValue = 10;
readonly static double[] _testValues = { 2, -2, 0, 10.1, -20.2 };
[SetUp]
public void Setup()
{
_charStat = new CharacterStat(_baseValue);
}
[TestCaseSource(nameof(_testValues))]
public void AddModifierTest(double test)
{
var result = _charStat.AddModifier(test); // logic being tested
var expected = _baseValue + test; // here repeat the logic from the logic being tested
Assert.AreEqual(result, expected);
}
}
Так можно делать, т.к. здесь банальные рассчёты, типа сложения, вычитания, умножения и деления, которые зависят от языка и фреймворка и которые тестировать не надо (они уже оттестированы). Поэтому на них "можно положиться".