2013-09-23 139 views
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); 

這是怎麼回事?

回答

0

PropertyBehaviour在存根上默認打開,但不打開在模擬上。因此,您可以繼續使用存根並更改爲異常中建議的語法,也可以使用GenerateMock<IWizardQuestion>()創建模擬並使用現有的.Stub(...).Return(...)語法。

+0

我不能使用該語法,因爲'Choices'是隻讀的。 – Jordan

+0

這對我有效。我希望在Rhino Mocks上有一個很好的播放或者什麼的。文檔相當稀少。 – Jordan