2011-02-17 3 views
0

Michael Hartl의 Rails on Rails 튜토리얼에서 요청 예제는 응답에 대한 주장을합니다. 나는 cbybara와 스테이크 보석을 설치하여 수용 테스트를 만들었습니다. capybara를 설치 한 후 요청 예는 capybara를 사용하도록 구성됩니다. 카피 바라 예제는 구문이 다르므로 응답을 인식하지 못합니다.
요청 예제를 RSpec 예제로 실행하려면 어떻게 재설정합니까?예제 별 튜토리얼 요청 예제 및 Capybara

테스트 오류 :

4) Users signup failure should not make a new user 
    Failure/Error: click_button 
    wrong number of arguments (0 for 1) 
    # ./spec/requests/users_spec.rb:13 
    # ./spec/requests/users_spec.rb:7 

요청 예

describe "failure" do 
    it "should not make a new user" do 
     lambda do 
      visit signup_path 
      fill_in "Name", :with => "" 
      fill_in "Email", :with => "" 
      fill_in "Password", :with => "" 
      fill_in "Confirmation", :with => "" 
      click_button 
      response.should render_template('users/new') 
     end.should_not change(User, :count) 
    end 
end 
+1

일부 코드 또는 오류를 보여주십시오. –

+0

@Dogbert thanks – user621984

답변

0

이 RSpec에 레일이 request_example_group.rb 함께 할 수있는 뭔가가있을 수 있습니다. 카피 바라 라인이 주석하는 경우

request_example_group.rb

, 다음 요청 예는 카피 바라, 기본값은 없습니다.

capybara do 
    include Capybara 
end 

수용 예에는 카피 바라가 포함됩니다.

require File.expand_path(File.dirname(__FILE__) + '/acceptance_helper') 

feature "This Is My First Feature", %q{ 
    In order to ... 
    As a ... 
    I want to ... 
} do 

    include Capybara 
    scenario "Scenario name" do 
     visit signup_path 
     fill_in "Name", :with => "" 
     fill_in "Email", :with => "" 
     fill_in "Password", :with => "" 
     fill_in "Confirmation", :with => "" 
     click_button "Sign up" 
     page.has_content?('welcome to the sample app') 
    end 
end 

결국 rspec-rails를 포기하고 카피 바라 라인을 주석 처리했습니다. Gemfile에서, 포크에서 설치된 보석.

왜 신경 써야합니까? 우리는 화이트 박스 및 블랙 박스 테스트를 원합니다.

0

답변을 올바르게 지적하면 rspec-rails가 설치된 경우 include Capybara이됩니다. 나는 그들이 결코 당신이 그것을 필요로하는 경우에 include Capybara에 결코 상처가 나지 않는다고 생각하고 있다고 생각한다. 그게 너에게 문제 야? 즉, 카피 바라 DSL과 구체적으로 충돌하는 것은 무엇입니까?

는 (이 또한 RSpec mailing list에 데리고 가치가있을 수 있습니다.)

당신이 게시 오류로

, 당신이 단순히 click_button 방법에 대한 인수를 누락 것으로 보인다.