내 컨트롤러 사양 내에서 유효하지 않습니다. 다음과 같이 (라이언 베이츠 nifty_scaffold 기준) 일부 라우팅 테스트 용 : -any_instance의 모카 스터 빙을 취소 할 수있는 방법이 있습니까?
it "create action should render new template when model is invalid" do
Company.any_instance.stubs(:valid?).returns(false)
post :create
response.should render_template(:new)
end
내가 따로 컨트롤러를 테스트 할 때이 괜찮습니다. 나는 또한 내 모델 사양에 다음과 같은 것을 가지고있다.
it "is valid with valid attributes" do
@company.should be_valid
end
다시 한번이 테스트는 고립 상태에서 잘 작동한다. 문제는 내가 모델과 컨트롤러 모두를 위해 스펙을 실행하면 나온다. 모델 테스트는 항상 유효한 것으로서 실패합니까? 메소드가 스텁 아웃되었습니다. 컨트롤러 테스트가 찢어 질 때 any_instance의 스터 빙을 제거하는 방법이 있습니까?
컨트롤러 이전에 모델 테스트가 실행되도록 역순으로 테스트를 실행하여 문제를 해결했지만 실제로 테스트가 시퀀스에 종속적이라고 생각하지 않습니다.
해결책은 정확하지만 설명은 정확하지 않습니다. Mocha는 RSpec을 감지하지 못하지만 RSpec 구성이 설명 된대로 설정되면 RSpec은 적절한 지점에서 Mocha를 호출합니다. –
주석을 업데이트했습니다. 고맙습니다. @floehopper –