модели нужно тестировать отдельно, даже если они тестируются с использованием контроллера - PullRequest
0 голосов
/ 11 марта 2011

Я написал модель для добавления пользователя.Затем я пишу контроллер, который вызывает этот метод в модели, чтобы добавить пользователя.

После этого я написал phpunit test, чтобы полностью протестировать этот контроллер.Потому что я вызываю модель в контроллере, чтобы добавить пользователя, который также тестирует модель.

Мой вопрос: нужно ли создавать отдельный тест для модели?Даже это вызывается в контроллере, и я полностью тестирую контроллер?

1 Ответ

2 голосов
/ 11 марта 2011

В идеале, при написании модульных тестов каждая единица кода (обычно класс) тестируется изолированно.Это означает наличие одного контрольного примера, который тщательно проверяет ваш класс модели, и другого контрольного примера, который проверяет ваш контроллер.Если модель достаточно сложна или требует длительного времени, вы можете заменить фиктивный объект или заглушку в тесте контроллера.

С помощью Test Driven Development вы могли бы писать код только после неудачного теста.Если вы начали с тестов для контроллера, я полагаю, вы могли бы закончить тестирование модели.Отслеживая покрытие кода, вы можете получить уверенность в том, что вы проверили весь код модели.

Однако без тестов только для модели я бы опасался, что во время рефакторинга могут возникнуть проблемы, которые не будут обнаруженытест контроллера.Также было бы сложнее диагностировать сбой в тесте контроллера: неисправен контроллер или модель?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...