Я предлагаю вам протестировать свои контроллеры, не заглушая свои модели.Не заботиться о скорости тестов, когда он попадает в базу данных.Я предполагаю, что вы хотите, чтобы база данных также тестировалась, и правильная программа важнее скорости ваших тестов, не так ли?
Рассматривайте функциональные тесты как еще один слой вокруг ваших модульных тестов, а некак нечто изолированное от ваших моделей.Ваши модульные тесты (модели) гарантируют, что некоторые методы модели работают должным образом, а затем ваши тесты контроллера гарантируют, что контроллер может использовать эти методы, и они работают так, как ожидает контроллер .
Как сказал Иафонов, не фокусируйтесь на методах модели в тестах вашего контроллераПредположим, что , если ваш контроллер способен дать вам правильный ответ, то ваша модель, очевидно, работает как ожидалось .
Конечно, у некоторых людей есть другая точка зрения.Я не утверждаю, что мое предложение является лучшим.Это просто работает для меня, и я считаю, что это правильно.Многие люди советуют вам тестировать свой контроллер изолированно от моделей, но как вы тогда гарантируете, что между вашими заглушками и реальной реализацией нет расхождений?