Login
Резюме для программиста
89957 просмотров
Перейти к просмотру всей ветки
in Antwort alex445 15.10.21 19:36, Zuletzt geändert 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); } }
Так можно делать, т.к. здесь банальные рассчёты, типа сложения, вычитания, умножения и деления, которые зависят от языка и фреймворка и которые тестировать не надо (они уже оттестированы). Поэтому на них "можно положиться".