2011-03-14 6 views
1

특정 테스트의 경우 클래스 메서드의 반환 값을 변경하고 싶습니다.모카에서 클래스 메서드를 언 스토킹하기

MyClass.expects (: method) .returns (: myvalue)를 호출하여 올바른 동작을 얻을 수 있습니다. 테스트를 마치면 어떻게합니까?

모카에는 unstub 메서드가 있지만 인스턴스 메서드에서만 작동하며 클래스 메서드에서는 작동하지 않는 것으로 보입니다.

답변

1

어떤 버전의 모카를 사용하고 있습니까?

이 MRI에서 작동/모카 0.9.12 :

트릭의
class T 
    def self.hello 
    "hi" 
    end 
end 

T.hello # => "hi" 
T.expects(:hello).returns("hello") 
T.hello # => "hello" 
T.unstub(:hello) 
T.hello # => "hi" 
T.expects(:hi).returns("world") 
T.hi # => "world" 
T.unstub(:hi) 
T.hi # => NoMethodError: undefined method .... 
+0

: 나는 모카-0.9.8 사용하고 있습니다. 0.9.12 문서가 인스턴스 전용이라는 것을 오해하고 그 오류 메시지를 확인으로 잘못 해석했습니다. 감사. –