2014-11-02 7 views
0

Я реорганизую свои контроллеры, перемещая логику к модели. Мне было трудно проверить мои методы контроллера, когда у них было так много логики (также не удалось повторно использовать логику в контроллерах). Теперь я хотел бы понять, как писать спецификации для этих контроллеров. Я следую this testing guide.Спецификация для тестирования метода контроллера, который вызывает методы модели

Вот пример:

def dashboard 
    @sorted_deals = Deal.deals_for_user(current_user) 
end 

Это вызывает метод класса, который имеет определенную логику, которая находит соответствующие предложения и сортирует их соответствующим образом. Он чувствует себя как необязательное дублирование, чтобы снова проверить deals_for_user (я уже тестировал его в спецификации модели). Как проверить этот метод без лишнего дублирования? Это случай, чтобы использовать mocks или stub?

ответ

0

Существует некоторая дискуссия о полезности тестов контроллера в Rails. Лично я блок тестирования дерьмо из моих моделей, и единственные реальные тесты, которые я делаю для контроллеров, - это интеграционное тестирование с использованием безгласного браузера, такого как Selenium with capybara. Если вы знаете, что ваш метод работает и тестируется, а логика просмотра/связанная с ним работает и тестируется с помощью тестов интеграции, тестирование контроллеров - это почти пустая трата времени. Есть и другие мнения по этому поводу, и я никоим образом не являюсь гуру, но я думал, что поставлю свои $ 00,02.

+0

Я склонен согласиться. – settheline

Смежные вопросы