Я работаю над удалением как можно большего количества логики из пользовательского элемента управления, чтобы его можно было тестировать модульно, чтобы уменьшить нагрузку на ручное тестирование. У меня проблемы с ситуациями, когда тестируемый метод дает сложный результат; Написание тестового примера, который вычисляет результат, будет включать запись того, что по сути является тестируемым кодом, в сам тест.
Например, у меня есть класс GeometryGenerator
, который создает геометрию WPF на основе свойств класса. В одной конфигурации генерируется PathGeometry
, который состоит из ArcSegment
. Я могу рассчитать, какие свойства дуги должны быть основаны на параметрах теста, но этот расчет идентичен коду, который я пытаюсь проверить. Похоже, что это сделает тест неэффективным; если в расчете есть ошибка, то в тесте будет ошибка, и если в методе будут изменены вычисления, возможно, придется изменить в тесте.
Что мне делать в этой ситуации? Единственный подход, который я предложил, - это вручную вычислить результаты моих тестовых случаев и жестко запрограммировать эти значения в тестах. Является ли это приемлемым подходом (кажется, что я бы сделал, если бы писал тесты до реализации)?