RSpec2에는 have_tag
테스트 도우미가 포함되어 있지 않습니다. Webrat과 Rail 3은 아직 호환되지 않기 때문에 webrat의 have_tag
또는 have_selector
정규화기를 사용할 수 없습니다. 쓸만한 방법이 있습니까 RSpec보기 테스트? have_tag
대신 assert_select
을 사용할 수도 있지만 처음에는 Test::Unit
테스트를 수행 할 수 있습니다. 아니면 Capexbara 또는 Cucumber와의 통합 테스트가 더 좋기 때문에 RSpec 뷰 테스트를 작성하는 것이 더 이상 바람직하지 않습니까?Rails3 및 RSpec2를 통한 RSpec보기
0
A
답변
0
Webrat이 너무 많은 문제를 일으켰습니다. RSpec에서 Capybara를 사용할 수도 있습니다. Capybara DSL (기능이 has_selector?
, has_content?
등)은 spec/requests
, spec/acceptance
또는 spec/integration
과 같은 RSpec 테스트에 사용할 수 있습니다.
당신은 카피 바라 (~> 1.0.1)의 최신 버전을 사용하는 경우 -이 기능을 지원하지 않습니다 0.4.0와 같은 이전 버전을 - 그리고
require "capybara/rspec"
require "capybara/rails"
다음 spec_helper.rb
파일을 다음 줄을 추가 자식 => 'http://github.com/kalv/ 다음
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에서 작동합니다.이 테스트를 거쳐 have_selector 정규 표현식 (have_tag가 작동하지 않음)을 사용할 수있었습니다.
이 Google group discussion을 살펴볼 수 있습니다. 기본적으로, 당신은 당신의 spec_helper.rb에 다음 줄을 추가, 메일 링리스트 솔루션 다음 Webrat.configure 상기 webrat의 추가 정보에 언급 된 블록, 그리고 필요하지 않습니다 :
include Webrat::Methods
include Webrat::Matchers
을 당신이 볼 수 있듯이, Webrat은 그렇지 않다 더 이상 업데이트되었으므로 Cucumber (+ Capybara)와의 통합 테스트로 더 나아질 수 있습니다.
은 단지 거기에 언급 된 버전,'> = 0.7.2.pre ', 사용할 수 있습니까 RSpec에 요청 시험 다음과 같은 예를 들어 쓸 수 webrat.git '? – 0x4a6f4672
@ 0x4a6f4672, 전에는 토론에서 그 사실을 알지 못했기 때문에 나는 방금 webrat의 규칙적인 맛을 사용했습니다. 나는 기본적으로'gem 'webrat'을 내 Gemfile에 추가했다. – mikong