2010-03-22 2 views
0

컨텍스트를 중복을 제거하는 방법"대답이 정확한지"RSpec에에서

before(:each) do 
    @answer = stub_model(Answer, :correct => true).as_new_record 
    assigns[:answer] = @answer 

    render "answers/summarize" 
end 

it "should display flashcard context properly" do 
    response.should contain("Quiz") 
end 

it "should summarize results" do 
    response.should contain("is correct") 
end 

상황 어떻게 할

before(:each) do 
    @answer = stub_model(Answer, :correct => false).as_new_record 
    assigns[:answer] = @answer 

    render "answers/summarize" 
end 

it "should display flashcard context properly" do 
    response.should contain("Quiz") 
end 

it "should summarize results" do 
    response.should contain("is incorrect") 
end 

을 "대답은 잘못" 위의 두 문맥 모두에서 다음 블록을 반복하지 마십시오.

it "should display flashcard context properly" do 

    response.should contain("Quiz") 

답변

0

귀하의 사양은 당신이 당신의 코드에서 기대하는 동작을 설명 - 반복이 금액은 괜찮습니다.

손에서 벗어날 경우 다른 상황을 사용하여 다른 기대치를 격리하십시오. 예를 들어, 답변이 무엇이든간에 페이지를 테스트하는 새로운 컨텍스트에 이러한 중복 된 기대치를 반영 할 수 있습니다. 당신이 정말로 당신의 검사 결과의 일부를 마무리하려면

0

, 당신은 이런 식으로 작업을 수행 할 수 있습니다 당신이 볼 수 있듯이

def answer_tests 
    it "should display flashcard context properly" do 
    response.should contain "Quiz" 
    end 

    it "should do be awesome" do 
    response.should be_awesome 
    end 
end 

context "answer is correct" do 
    answer_tests 

    it "should summarize results" do 
    response.should contain "is correct" 
    end 
end 

context "answer is incorrect" do 
    answer_tests 

    it "should summarize results" do 
    response.should contain "is incorrect" 
    end 
end 

이 정말 편리합니다 당신이 포장하려는 하나 개 이상의 시험이있을 때 .

관련 문제