使用Rhino Mock存储只读属性

时间:2017-02-20 10:42:59

标签: c#-4.0 rhino-mocks

我有一个带有私有set属性的类,我想用rhino mocks来存根。  但是,当我尝试这样做时,它会给我一个运行时错误。我是擅长使用Rhino Mocks所以我必须在这里遗漏一些东西......

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);
}

执行第viewStub.Stub(x=>x.isDialog).Return(isDialog)

时给出一个堆栈跟踪

System.Reflection.TargetInvocationException:调用目标抛出了异常。   ----&GT; System.Reflection.TargetInvocationException:调用目标抛出了异常。   ----&GT; System.NullReferenceException:未将对象引用设置为对象的实例。

1 个答案:

答案 0 :(得分:0)

问题在于你混合了不同语法的Rhino Mocks:Record-Replay和AAA(Arrange,Act,Assert),并且Mock处于无效状态。
它应该工作(基于我的小测试),如果不使用button.HorizontalContentAlignment = HorizontalAlignment.Left; 对象,你将使用以下内容:

MockRepository