Как подклассы unit test
Каков наилучший способ подклассов unit test? Предположим, что существует базовый класс, для которого я уже написал тесты, и есть некоторое количество подклассов, которые переопределяют некоторые из родительских поведений в общедоступных и/или защищенных методах.
Если класс test для моих подклассов расширяет (и, при необходимости, переопределяет методы тестирования) класс тестирования для моего базового класса, чтобы применить все тесты базового класса? В противном случае я ожидал бы повторного тестового кода.
Ответы
Ответ 1
Согласно принципу подписи Лискова, экземпляры подклассов должны обладать теми же свойствами, что и базовый класс, и, таким образом, передавать (все?) одинаковые модульные тесты.
Я бы выполнил [возможно, не все, все, что имеет значение] тесты базового класса для каждого подкласса. Это может быть достигнуто с помощью тестового помощника.
Да, подкласс класса тестирования может быть хорошим способом избежать дублирования в модульных тестах. Посмотрите на шаблон Testcase superclass.
Ответ 2
Трудно увидеть без примера, но я бы тестировал базовый класс в одном наборе тестов, а затем создавал новые тесты для подклассов и просто тестировал поведение, которое отличается.