Два вопроса о тестировании контроллеров Rails с использованием RSpec - PullRequest
1 голос
/ 23 мая 2011
  1. Как вы вызываете before_filter напрямую для проверки его реализации?Допустим, я хочу написать спецификацию для ApplicationController, которая содержит несколько фильтров перед.Каков стандартный способ их проверки?Обратите внимание, я не хочу проверять, что они были вызваны - я просто хочу протестировать их реализацию один раз в одной спецификации.

  2. Мне нравится иметь "render_views" нак началу моих спецификаций контроллера, но когда я использую заглушки, я получаю всевозможные странные ошибки при попытке получить идентификатор или другие атрибуты объекта заглушки.Как вы справляетесь с этим, чтобы убедиться, что ваши взгляды правильны при использовании заглушек?

Я использую RSpec.

1 Ответ

2 голосов
/ 23 мая 2011

Объявление 1) Являются ли правильные помощники?Тогда проверь их как помощников.Если в вашем контроллере есть методы, то они закрытые, вы можете протестировать их с помощью send.

require 'spec_helper' 
describe PostsController do
  it "private #scope should be Post.all" do
    @controller.send(:scope).should == Post.all
  end
end

Ad 2). У меня также есть render_views, что экономит мое время на тестирование представлений.Я не использую окурки, но реальные объекты из FactoryGirl или тому подобное.Вся насмешка над объектами - отстой, когда ваши объекты меняются, и это большая дополнительная работа.Фабрики нет.Конечно, ваши тесты будут медленнее, но вы будете тестировать глубже и шире.

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