存根属性时获取异常

时间:2013-09-23 18:44:01

标签: testing rhino-mocks

当我运行以下测试时:

    [TestMethod]
    public void MyTest()
    {
        var wizardCatalog = MockRepository.GenerateStub<IWizardCatalog>();

        var firstQuestion = MockRepository.GenerateStub<IWizardQuestion>();
        wizardCatalog.Stub(i => i.GetFirstQuestion()).Return(firstQuestion);

        var choices = new List<IWizardChoice>();
        firstQuestion.Stub(i => i.Choices).Return(choices);
    }

我得到了这个例外:

  

您正尝试在已定义的属性上设置期望值   使用PropertyBehavior。而不是编写如下代码:   mockObject.Stub(x =&gt; x.SomeProperty).Return(42);你可以使用   属性直接实现相同的结果:mockObject.SomeProperty   = 42;

我读到的所有内容都告诉我这个存根操作是有效的:

        var choices = new List<IWizardChoice>();
        firstQuestion.Stub(i => i.Choices).Return(choices);

发生了什么事?

1 个答案:

答案 0 :(得分:0)

默认情况下,

PropertyBehaviour在存根上启用,但在模拟时不启用。因此,您可以继续使用存根并更改为异常中建议的语法,也可以使用GenerateMock<IWizardQuestion>()创建模拟并使用现有的.Stub(...).Return(...)语法。