2009-08-20 6 views
3

BDD를 가르치고 일반적으로 테스트하기위한 레일 앱을 개발 중입니다. 오이 + webrat + rspec을 사용하여, 비디오를 찍은 후 비디오를 방송합니다. 이 앱에는 퀴즈 has_many 질문이 있습니다. 내가 테스트하는 견해는 질문을 두 번 연속적으로 렌더링해야합니다. (여기에 테스트하지 인접성) 나는이오이 + webrat : 두 번 나타나는 텍스트 확인

Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident" 
When I go to the experiment page for quiz titled "Pearl Jam" 
Then I should see "Corduroy" twice 
And I should see "Dissident" twice 

내 단계를 확인하기위한 오이 시나리오를 다음과 같이 정의되어 있습니다

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text) 
    response.should contain(regexp) 
end 

나는 도구를 사용하여 정규식을 테스트를, 작동하는 것 같다 ,하지만 오이에 대한 검사는 실패합니다.
몇 가지 문서를 찾았지만 webrat의 유일한 문서는 API 문서입니다. 응답을 텍스트로 표시 할 수 없었습니다. 제안 사항이 있으십니까?

답변

6

응답 해 보셨습니까?

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text) 
    response.body.should contain(regexp) 
end 
+0

완벽한 답변 감사합니다. – nutsmuggler

+0

코드에 얽매여 있으면 이러한 것들을 놓치기 쉽습니다! – Damian

1

나는 선에서 작동이 얻을 데미안의 답변을 수정했다.

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text, Regexp::MULTILINE) 
    response.body.should contain(regexp) 
end