2017-02-20 12 views
1

나는 rhino mock으로 스텁하기를 원하는 개인 설정 속성을 가진 클래스가 있습니다. 그래도 이렇게하면 런타임 오류가 발생합니다. 예외가 throw되었습니다 : 나는이 실행 라인 viewStub.Stub(x=>x.isDialog).Return(isDialog)Rhino Mock으로 읽기 전용 속성 스텁하기

System.Reflection.TargetInvocationException이 때 나에게 스택 추적을 제공

public interface IView 
{ 
    bool isDialog { get; } 
} 

[TestMethod] 
public void SomeTest() 
{ 
    var m_MockRepository = new MockRepository(); 

    Helper.SetDialog(m_MockRepository,false); 

    //Asserts and such 
} 

static class Helper 
{ 

    internal static SetDialog(MockRepository mockRepository, bool isDialog) 

    var viewStub=mockRepository.stub<IView>(); 
    viewStub.Stub(x=>x.isDialog).Return(isDialog); 
} 

... 그래서 내가 여기서 뭔가 빠진해야 코뿔소 모의 객체를 사용하여 새로운 해요 호출의 타겟 ----> System.Reflection.TargetInvocationException : 호출 대상에 의해 예외가 발생했습니다. ----> System.NullReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.

답변

0

문제는 Rhino Mock의 다른 구문 인 Record-Replay와 AAA (Arrange, Act, Assert)가 혼합되어있어 모의이 유효하지 않은 것입니다.

var viewStub = MockRepository.GenerateStub<IView>(); 
: 대신 MockRepository 객체를 사용하는 다음과 같은 사용한다면
그것은, (내 작은 테스트 기준) 작동합니다