Как провести юнит-тестирование подклассов - PullRequest
15 голосов
/ 17 сентября 2011

Каков наилучший способ подкласса модульного тестирования?Давайте предположим, что есть базовый класс, для которого я уже написал тесты, и есть некоторое количество подклассов, которые переопределяют некоторые действия родителей в открытых и / или защищенных методах.(и при необходимости переопределить методы тестирования) тестовый класс для моего базового класса, чтобы были применены все тесты базового класса?В противном случае я ожидал бы иметь повторный тестовый код.

Ответы [ 2 ]

10 голосов
/ 18 сентября 2011

Согласно принципу подстановки Лискова , экземпляры подклассов должны проявлять те же свойства, что и базовый класс, и, таким образом, проходить (все?) Одинаковые модульные тесты.

Я бы запустил [возможно, не все, все что уместно] тесты базового класса для каждого подкласса.Это может быть достигнуто с помощью помощника по тестированию .

Да, создание подкласса класса тестирования может быть хорошим способом избежать дублирования в модульных тестах.Взгляните на шаблон Supercase Testcase.

6 голосов
/ 17 сентября 2011

Сложно увидеть без примера, но я бы протестировал базовый класс в одном наборе тестов, а затем создал новые тесты для подклассов и просто протестировал поведение, отличающееся.

...