2010-04-21 2 views
1

내가 아는 한, should_receive은 모의 객체에만 적용됩니다. 내가 원하는 것은 특정 클래스 (객체가 아닌)가 다음과 같은 특정 메시지를 받았는지 확인하는 것입니다.should_receive in RSpec

User.should_receive(:all).once 

어떻게하면됩니까?

UPD. 일반적으로 모델 및 컨트롤러에 대한 테스트를 작성합니다. 으로 작성합니다. User.should_receive (: smth) .once. 하지만 내 경우에는 내가 lib 폴더에서 임의의 클래스를 테스트하고있어, 어떻게 든 나는 항상 다음과 같은 메시지가 나타납니다 그래서 이유에

<User([fields]) (class)> expected :all with (no args) once, but received it 0 times> 

어떤 아이디어? 테스트는 어떻게 든 User 클래스를 보지만 메시지를 받았는지 여부는 확인할 수 없습니다. 물론 나는 사용자 이 실제로 메시지를받는임을 10 번 확인했습니다.

답변

5

쉬운 :

User.should_receive(:all).once 

내가 원하는 확인하는 것입니다, 특정 클래스 (반대하지) 특정 메시지

을받은 경우

클래스 객체입니다!

+0

답변 해 주셔서 감사합니다. 더 자세한 내용으로 질문을 업데이트했습니다. – gmile