"extends"메소드를 통해 모델 인스턴스에 포함 된 데코레이터 모듈을 사용합니다. 그래서 예를 들면 :"instance.extend (DecoratorModule)"에 포함 된 메소드 조롱/스텁
module Decorator
def foo
end
end
class Model < ActiveRecord::Base
end
class ModelsController < ApplicationController
def bar
@model = Model.find(params[:id])
@model.extend(Decorator)
@model.foo
end
end
가 그럼 난 다음 (사용 모카)을 수행 할 테스트에 싶습니다
이test "bar" do
Model.any_instance.expects(:foo).returns("bar")
get :bar
end
어떻게 든이 가능하거나 할 당신은 마음에 얻을 수있는 다른 방법이 이 기능 ??? (렌더링과 테스트 응용 프로그램에서 확인 : 텍스트)이 작동
당신은 include vs extend에 대해 옳을 수도 있지만 경우에 따라 클래스의 모든 인스턴스를 확장하고 싶지 않을 수도 있습니다. 어떤 모카 버전을 사용하고 있습니까? 내 컴퓨터에서 오류가 발생합니다 (모카 오류) –
모카 0.10.0을 사용하고 있습니다. 코드 체크 아웃 https://gist.github.com/1277344 – bandito
글쎄, 위의 대답을 읽고, 나는 문제가 any_instance (나는 any_instance를 전혀 사용하지 않고, RSpec에도 존재하지 않는다고 생각한다) – bandito