스텁 방법 : 포함 된 모듈의 수퍼 메소드.컨트롤러의 스텁 수퍼 방법
class ImportsController < BaseController
include ImportBackend
def import_from_file
super
rescue TransferPreview::Error => exc
flash[:error] = "Some String"
redirect_to imports_path
end
end
그리고 importBackend 모듈 :
module ImportBackend
def import_from_file
//something
end
end
내가 그 컨트롤러를 테스트 할 나는 다음과 같은 컨트롤러를 가지고있다. 내 질문은 ImportBackend 메서드를 스텁하여 오류를 발생시키는 방법입니까? 몇 가지 해결책을 시도했지만 아무것도 작동하지 않습니다.
ImportBackend.stub(:import_from_file).and_raise(Transfer::Error)
controller.stub(:super).and_raise(Transfer::Error)
controller.stub(:import_from_file).and_raise(Transfer::Error)
모든 답변 주셔서 감사합니다. 루비 super
에서
나를 위해 작동하지 않습니다. ImportBackend # import_from_file을 스텁하고 싶습니다. 귀하의 솔루션을 사용했지만 테스트가 여전히 실패했습니다. – user2239655
죄송합니다, @ user2239655, 질문을 잘못 읽었습니다. 내 대답을 업데이트했습니다. –
큰 감사;) – user2239655