RSpec2 не содержит тестового помощника have_tag
. Использование команд webrat have_tag
или have_selector
вместо этого невозможно, так как Webrat и Rails 3 еще несовместимы. Есть ли способ написать полезный RSpec просмотр тестов? Можно использовать assert_select
вместо have_tag
, но тогда можно было бы провести Test::Unit
тестов. Или уже не рекомендуется писать тесты RSpec, потому что тесты интеграции с Capybara или Cucumber лучше?RSpec Посмотреть тестирование с Rails3 и RSpec2
ответ
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
Фактически, 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.7.2.pre»,: мерзавец => «http://github.com/kalv/ webrat.git '? – 0x4a6f4672
@ 0x4a6f4672, я не заметил этого в их обсуждении раньше, поэтому я просто использовал обычный вкус webrat. Я просто добавил 'gem 'webrat'' в свой Gemfile. – mikong