2013-04-19 2 views
1

Я обновился до Rails 3.2 и Capybara 2.1 и около 30% моих 700 тестов терпят неудачу. Пучок из неудачных испытаний, как это:Модернизированный Capybara 2 и все мои тесты is_selector сломались

require 'spec_helper' 

describe BooksController do 
    render_views 
    let(:page) { Capybara::Node::Simple.new(@response.body) } 

     describe "new" do 

     it "should get new" do 
      get :new, :author_id => author_token, :publish_action => "Publish" 
      response.should be_success 
      page.should have_selector "h1", text:"Transition" 
     end 
    end 
end 

Неудачный выход теста:

BooksController should get new content 
    Failure/Error: page.should have_selector 'h1', text:'Preview' 
    Capybara::ExpectationNotMet: 
     expected to find css "h1" with text "Preview" but there were no matches 
    # ./spec/controllers/books_controller_spec.rb:46:in `block (5 levels) in <top (required)>' 

При использовании печати page.html, save_and_open_page и т.д., я получаю пустой или нет выхода , Но многие другие тесты проходят. Кажется, что-то связано с проверкой тегов h1.

ответ

0

Ознакомьтесь с разделами rspec-rails под разделом Upgrading to Capybara 2. Я даю вам эту информацию, которая несколько скрыта, и мне потребовалось некоторое время, чтобы ее найти.

В принципе, для использования Capybara DSL (страница &) вы должны перенести свои спецификации в каталог spec/features. Поэтому вы можете использовать только page & visit в приемочных тестах. Нет больше страницы & посетите спецификации контроллера. В спецификации контроллера допускается только испытание в стойке DSL (get|post|put|delete|head/response.body).

Это не рекомендуется, но есть способ сохранить ваши функции работают, как они:

RSpec.configure do |c| 
    c.include Capybara::DSL, :example_group => { 
    :file_path => "spec/requests" 
    } 
end 

Документы утверждают, что если вы идете по этому пути, то вы перекрывая намеченное поведение, и вы рискуя.

Надеюсь, это поможет вам на правильном пути

+0

Спасибо. Это моя проблема, и я не видел эту документацию раньше. Теперь, чтобы переместить тесты! – JHo

+0

+1 Нет проблем. Я видел, что это был вопрос без ответа с того момента, и я не был уверен, поняли ли вы это. рад помочь. – fontno

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