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