2013-07-03 2 views
5

나는이 같은 클래스의 메서드 호출을 스텁하려고 마련 호출코뿔소 모의 객체가 실제 방법에

관리자 managerStub = MockRepository.GenerateStub (constructordata);
managerStub.Stub (X => x.GetData (Arg.Is.Anything)). 돌아 내가이 단위 테스트를 실행하려고 할 때, Rhino에서 조롱 (10)

이 매개 변수는 "GetData의"메소드를 호출 "manager.Stub ..."행에서 "0"을 입력하십시오.

Rhino Mocks가 실제 메소드를 호출하는 이유는 무엇입니까?

+2

실제 방법은'가상'입니까? 그렇지 않은 경우 RhinoMocks에서 스텁 할 수 없습니다. –

+0

아 ... 그렇지 않습니다. 그게 문제 였고 대답을 게시하고 시간 제한이 끝나면 받아 들일 것입니다. –

+0

가상에 있어야하는 이유에 대한 답변이 추가되었습니다. –

답변

7

클래스의 스텁을 요청한 경우 RhinoMocks는 파생 클래스를 즉시 작성하고 스텁하려는 메소드를 대체합니다.
그러나 스텁하려는 메소드가 virtual이 아닌 경우 RhinoMocks가이를 무시할 수 없으므로 스텁 할 수 없습니다.