2009-07-14 2 views
3

모의 된 ActiveRecord 모델에 기대치를 설정하려고합니다. 다음 예제를 만들었습니다.이 예제는 찾을 수있는 문서를 기반으로합니다.레일 : RSpec 모의 모델에 대한 기대 설정 문제

it "should pass given the correct expectations" do 
    payment = mock_model(Payment) 
    payment.should_receive(:membership_id).with(12) 
    payment.membership_id = 12 
end 
그것은 오류와 함께 실패

: 내가 조롱 프레임 워크를 테스트하고 실현

"모의 'Payment_1004가'예기치 않은 메시지를 받았습니다 (12)와 membership_id ="난 그냥 노력하고 있어요에 기대를 설정하는 방법을 이해합니다.

답변

10

잘못된 메서드 이름에 대한 기대치를 설정하고 있습니다. :membership_id은 "getter"이고, :membership_id=은 "setter"입니다. 올바른 라인은 다음과 같습니다

payment.should_receive(:membership_id=).with(12) 
+0

완벽한, 감사합니다! – Lee

+0

Mongoid :: Document에서'mock_model'을 사용하여 고맙습니다. 내가'model.should_receive (: write_attribute)'와'model.should_receive (: save)'를 추가하기 만하면되었다. – bowsersenior

1

또 다른 유용한 여기 "에서"- - 하나는 ID 키를 걱정하지 않는 경우 다음과 같이 할 수 있습니다 :

mock_model(Payment,:[]= => nil, :save=> nil) 

을 .. 불러야 만

mock_model(Payment,:[]= => nil) 

관련 문제