当我运行以下测试时:
[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);
发生了什么事?
答案 0 :(得分:0)
PropertyBehaviour
在存根上启用,但在模拟时不启用。因此,您可以继续使用存根并更改为异常中建议的语法,也可以使用GenerateMock<IWizardQuestion>()
创建模拟并使用现有的.Stub(...).Return(...)
语法。