rspec 테스트를 사용하여 컨트롤러 메소드에서 함수가 호출되었는지 확인하려고합니다. 이렇게하려면 confirming an instance of a class receives a message에 대한 relishapp 설명서를 따르고 있습니다. 다음과 같이 내 구현은 다음과 같습니다, 나는 delay
을 확인하기 위해 노력하고있어이 경우rspec을 사용하여 컨트롤러 내에서 함수가 호출 됨
Failure/Error: Unable to find matching line from backtrace
Exactly one instance should have received the following message(s) but didn't: delay
: 나는 다음과 같은 오류가 계속하지만
it "does the job" do
expect {
post :create, {:obj => valid_attributes}
}.to change(Object, :count).by(1)
Object.any_instance.should_receive(:delay)
flash[:notice].should eq(I18n.t(:success, obj: 'object', past_participle: 'created'))
response.should redirect_to(new_object_path)
end
: 그러나, 나는 다음과 같은 오류가 계속 메서드가 호출되었습니다. 분명히 메서드가 컨트롤러 메서드에서 호출 된 것을 볼 수 있습니다. 왜 rspec이이를 확인하지 못합니까?
게시물 요청을하기 전에 should_receive 전화를 걸어보십시오. –
실제로 스펙이 전혀 전달되지 않습니다. 지금은 어떤 방법으로 검사했는지에 따라 다른 오류가 발생하지만 컨트롤러 메서드는 작동하지 않습니다. 이 pastie의 오류에 대한 자세한 설명을 참조하십시오. http://pastie.org/private/yvvanhw95fnrercqth9ugg –