0

当我运行以下测试时:

    [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 => x.SomeProperty).Return(42); 您可以直接使用该属性来达到相同的结果:mockObject.SomeProperty = 42;

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

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

到底是怎么回事?

4

1 回答 1

0

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

于 2013-09-24T02:20:29.797 回答