rspec тестирование контента - PullRequest
1 голос
/ 22 июня 2011

Я использую Rspec для проверки содержимого представления в моей спецификации контроллера.Я пытаюсь проверить, что все записи Product имеют свои описания, отображаемые на странице.

describe StoreController do
  render_views

  describe "GET 'index'" do

    before(:each) do
      get :index
    end

    it "should display the product list" do
      Product.all.each do |product|
        response.should have_selector("p", :content => product.description)
      end
    end

  end
end

Однако, похоже, это не работает, поскольку тест проходит независимо от того, что находится в представлении.Все еще очень плохо знаком с Rails, так что, вероятно, я делаю что-то здесь совершенно не так.Как выполнить проверку кода на наличие каждого описания продукта в представлении индекса StoreController?

Ответы [ 2 ]

4 голосов
/ 22 июня 2011

Лично я бы не проверял содержимое представления в контроллере.Я бы просто протестировал исходящий вывод действий контроллера и любых методов поддержки.Я бы поставил связанные с этим тесты в спецификации вида.

Если вы посмотрите на те, которые сгенерированы rails, вы должны увидеть некоторые примеры того, как утверждать контент там.

0 голосов
/ 23 июня 2011

Я понял это. Проблема заключалась в том, что в моей тестовой базе данных не было ни одного Products, поэтому блок each никогда не выполнялся. Исправлено с помощью Factory Girl, чтобы заранее убедиться в наличии данных в тестовой базе данных.

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