#ruby-on-rails #ruby #rspec #nokogiri
#ruby-on-rails #ruby #rspec #nokogiri
Вопрос:
Есть ли способ использовать Nokogiri в Rspec?
В частности, я пытаюсь получить ответ от действия контроллера и преобразовать его в объект Nokogiri page
и запустить синтаксический анализ для Nokogiri, подобный приведенному ниже:
page.search('input[name="some_name"]').size.should == 1
Куда мне включить Nokogiri — это должно быть в spec_helper.rb?
Как мне преобразовать ActionController::TestResponse
в объект Nokogiri?
Или возможно выполнить вышеуказанное утверждение, используя простой синтаксис Rspec?
Комментарии:
1. похоже на то, что capybara ( github.com/jnicklas/capybara ) (в частности, модуль запроса) предназначен для.
2. нет, если вы тестируете, например, HTTP api, который передает XML
Ответ №1:
Если вы не используете capybara, как предлагает @sevenseacat, вы можете сделать что-то вроде:
page = Nokogiri::HTML(response.body)
А затем используйте Nokogiri
методы поиска. Но capybara
это действительно лучший способ, потому что он включает модуль запросов, который позволяет делать такие вещи, как
expect(page).to have_css('input[name=some_name]', count:1)