2011-01-09 2 views
0

RSpec을 처음 접했고 스펙 테스트를 작성하면서 리턴 값이 예상 한 것과 다른 경우에도 스펙 테스트가 통과하는 문제점을 발견했습니다. 예를 들어 :예상되는 반환 값을 지정하는 방법은 무엇입니까?

@q= Query.new 
    @q.should_receive(:number_to_name).with(0).and_return("no such boro") 
    @q.number_to_name(0) 

이 내가 이런하게 이해하지 않는 0과를 호출 할 때 Query.number_to_name가 다른 값을 반환하는 경우에도 전달합니다.

답변

-1

should_receive은 rspec의 조롱 도구의 일부입니다.

@q.should_receive(:number_to_name).with(0).and_return("no such boro") 

당신은 number_to_name0의 인수와 모의가 "no such boro"가 반환 호출 할 것이라는 기대를 설정, @qnumber_to_name을 조롱하고 있습니다. @q.number_to_name(0)을 실행하면 모의 객체를 호출하여 기대를 충족시킵니다. number_to_name의 구현이 호출 된 적이없고 테스트되지 않습니다.

+1

Downvoting 원래 질문에 대한 대답이 아니기 때문에 예상 값을 지정하는 방법이 문제였습니다. 그리고 예제 코드가 작동하지 않는 이유를 설명했습니다. –

관련 문제