Правильно ли использовать assert_select для тестов контроллера RSpec? - PullRequest
2 голосов
/ 08 марта 2012

Мне не удалось найти много документации или совета по написанию хороших тестов контроллера RSpec.В частности, следует ли вам использовать Rails 'assert_select, который выглядит очень непохожим на RSpec, или есть альтернатива ему?

Является ли приведенный ниже пример наилучшей практикой?

describe ArticlesController do
  render_views
  let(:article) { create(:article) }

  describe "show" do
    it "should display the article title" do
      get :show, id: article
      response.should be_success
      assert_select "h1", article.title
    end
  end
end

Не знаюхочу написать отдельные тесты вида, так как это довольно неудобно.

1 Ответ

0 голосов
/ 08 марта 2012

Вы можете использовать следующий код для проверки содержимого заголовка:

page.should have_selector("h1", :text => article.title)

ОБНОВЛЕНИЕ : Как кто-то заметил (с -1), ответ был неправильным, переменная page это что-то, установленное Капибарой после вызова метода visit (я был молод, когда ответил: P). Так что это то, что вы используете в интеграционных тестах, а не в функциональных тестах (контроллере), как вы пытаетесь это сделать.

Краткий ответ : Нет, некорректно использовать assert_select в тестах контроллера (используется для проверки ответов на запросы, если установлены переменные и т. Д.) *

...