2011-08-05 1 views
0

RSpec2 не содержит тестового помощника have_tag. Использование команд webrat have_tag или have_selector вместо этого невозможно, так как Webrat и Rails 3 еще несовместимы. Есть ли способ написать полезный RSpec просмотр тестов? Можно использовать assert_select вместо have_tag, но тогда можно было бы провести Test::Unit тестов. Или уже не рекомендуется писать тесты RSpec, потому что тесты интеграции с Capybara или Cucumber лучше?RSpec Посмотреть тестирование с Rails3 и RSpec2

ответ

0

Webrat вызвал слишком много неприятностей, также возможно использовать Capybara с RSpec. Capybara DSL (с функциями has_selector?, has_content? и т. Д.) Доступен для следующих испытаний RSpec: spec/requests, spec/acceptance, или spec/integration.

Если вы используете последнюю версию Капибара (~> 1.0.1) - более старые версии, такие как 0.4.0 не будет поддерживать это - и добавьте следующие строки в файл spec_helper.rb

require "capybara/rspec" 
require "capybara/rails" 

тогда вам можно написать, например, следующие испытания запроса RSpec

require 'spec_helper' 

describe "Posts" do 
    describe "GET /blog" do 
    it "should get blog posts" do 
     get blog_path 
     response.status.should be(200) 
     response.body.should have_selector "div#blog_header" 
     response.body.should have_selector "div#blog_posts" 
    end 
    end 
end 
1

Фактически, Webrat работает с Rails 3. Я тестировал это, и я смог использовать помощник has_selector (has_tag не работал).

Вы можете ознакомиться с этим Google group discussion. В принципе, вам не нужен Webrat.configure блок, упомянутый в Webrat ридми, и следующее решение списка рассылки, добавьте эти строки в spec_helper.rb:

include Webrat::Methods 
include Webrat::Matchers 

Как вы можете видеть, Webrat не так обновлено, так что да, вам может быть лучше с интеграционным тестированием с Cucumber (+ Capybara).

+0

ли работа только с версией упомянутой там, «> = 0.7.2.pre»,: мерзавец => «http://github.com/kalv/ webrat.git '? – 0x4a6f4672

+0

@ 0x4a6f4672, я не заметил этого в их обсуждении раньше, поэтому я просто использовал обычный вкус webrat. Я просто добавил 'gem 'webrat'' в свой Gemfile. – mikong