2011-08-05 2 views
0

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

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

은 단지 거기에 언급 된 버전,'> = 0.7.2.pre ', 사용할 수 있습니까 RSpec에 요청 시험 다음과 같은 예를 들어 쓸 수 webrat.git '? – 0x4a6f4672

+0

@ 0x4a6f4672, 전에는 토론에서 그 사실을 알지 못했기 때문에 나는 방금 webrat의 규칙적인 맛을 사용했습니다. 나는 기본적으로'gem 'webrat'을 내 Gemfile에 추가했다. – mikong