매우 간단한 테스트를 위해 RhinoMocks를 사용합니다 (저는 여기에 초보자입니다).RhinoMocks 모의에서 메소드의 실행을 무시할 수 있습니까?
var stubLinkedObject = MockRepository.GenerateStub<MyClass>();
다음 내 스텁 인수 방법 클래스 MyClass
의 AddLink
를 호출 할 몇 가지 논리를 실행합니다 나는 도우미 스텁을 만들이
var mock = MockRepository.GenerateMock<MyClass>();
처럼 내 개체를 조롱했습니다. 테스트가 끝날 때 나는이 메소드가 실제로 호출 된 것이라고 단언한다.
mockAction.AssertWasCalled(a => a.AddLink(stubLinkedObject));
올바른 의존성을 주입했고 실제로 메소드가 호출되었다. 그러나 문제는 구현이 MyClass
에 호출되어 일부 논리가 실행될 수 없기 때문에 충돌이 발생한다는 것입니다 (링크 모음을 사용할 수없는 등). 실행을 건너 뛰고 메소드 호출 여부를 단순히 확인하는 방법은 무엇입니까? 내가 실행에 들어가기 전에
mockAction.Stub(a => a.AddLink(null)).IgnoreArguments().Do(null);
등을 시도했지만, 작동하지 않는 것 같습니다. (나는 단지 몇 가지 예외가 있습니다). 어떤 아이디어와 아마도 mock이 메소드 논리를 전혀 실행하지 않는 이유에 대한 설명일까요?
AddLink 가상 메소드가 가상입니까? –
아니, 아마도 그게 문제 야 :) –
혼란스러워. 일반적으로 조롱되거나 스터브되지 않는 테스트중인 클래스의 객체 인스턴스가 하나 있어야합니다. 당신은 가짜와 스텁이있는 것 같습니다. 조롱과 스터 빙은 테스트 중에 제어해야하는 공동 작업자 객체에만 적용됩니다. –