Тестирование рельсов. Заглушки и макеты
Я работаю над проектом rails, в котором модель запрашивает сервис и получает данные от сервиса. Теперь, когда я хочу написать тесты для моделей и контроллеров, мне нужно имитировать сервис. Я довольно новичок в тестировании рельсов. Я не понимаю, что мне делать. У рельсов есть заглушки, насмешки и крепеж - какой из трех я должен использовать. Я полагаю, что светильники не будут полезны. Предложение плз. Благодарю.
1 ответ
Большинству тестов Rails не нужны заглушки или макеты, но в этом контексте пример, где вам может понадобиться это макет модели в контроллере или интеграционный тест.
Поскольку контроллеры, как правило, манипулируют моделями, вы иногда захотите убедиться, что модель была вызвана определенным образом. Обычно вы можете сделать это, просто утверждая состояние модели после вызова контроллера, но иногда вы можете захотеть проверить фактический вызов, сделанный из контроллера в модель. В этом случае вы "моделируете" модель, используя библиотеку Ruby mocking, и настраиваете ожидание перед вызовом контроллера. Тест не пройден, если ожидаемый метод модели не был вызван.
Другой мотивацией может быть подделка возвращаемых данных, в этом случае вы "заглушите" модель. Стаббинг просто издевается без какого-либо утверждения, вы можете подготовить какое-то поддельное поведение.