У меня есть проект, с которым я пытаюсь научиться модульному тестированию и методам TDD. Я обнаружил, что попадаю в довольно запутанные случаи, когда трачу много времени на настройку макетов для служебного класса, который используется практически везде.
Из того, что я читал о модульном тестировании, если я тестирую MyClass, я должен издеваться над любой другой функциональностью (например, предоставляемой UtilityClass). Допустимо ли (если предположить, что сам UtilityClass имеет полный набор тестов) просто использовать UtilityClass, а не настраивать макеты для всех различных тестовых случаев?
Редактировать: одна из вещей, для которых я много настраиваю.
Я моделирую карту с различными объектами в разных местах. Одним из распространенных методов в моем служебном классе является GetDistanceBetween. Я тестирую методы, которые влияют на вещи в зависимости от их индивидуальных свойств, поэтому, например, тест, который выбирает все объекты в пределах 5 единиц точки и возраст старше 3, потребует несколько тестов (получает старые объекты в диапазоне, игнорирует старые объекты диапазона, игнорирует молодые объекты в диапазоне, корректно работает с коэффициентами, кратными каждому случаю), и все эти тесты нуждаются в настройке метода GetDistanceBetween. Умножьте это на каждый метод, который использует GetDistanceBetween (почти на каждый), и на разные результаты, которые метод должен возвращать в различных обстоятельствах, и это требует много настроек.
Я вижу, что по мере дальнейшего развития этого процесса, может быть больше вызовов классов утилит, большое количество объектов и много настроек для этих классов фиктивных утилит.