2010-01-19 103 views
26

我有一個私人設置屬性,我想剔除犀牛嘲笑類。但是,當我嘗試這樣做時,它給我一個編譯時錯誤,說我無法設置只讀屬性。我是新來使用犀牛製品,所以我必須缺少的東西在這裏...犀牛嘲諷只讀屬性

public Interface IFoo 
{ 
    int Quantity { get; } 
} 

[TestMethod] 
public void SomeTest() 
{ 
    IFoo foo = MockRepository.GenerateStub<IFoo>(); 
    foo.Quantity = 5; 

    //Asserts and such 
} 

回答

33

用途:

foo.Stub (f => f.Quantity).Return (5); 

http://ayende.com/Wiki/Rhino+Mocks+3.5.ashx#UsingExpecttosetupproperties

您還可以使用:

foo.Expect(f => f.Quantity).Return (5); 
+2

使用存根方法工作完美后,我意識到我試圖存根具體類而不是接口。謝謝! – JChristian 2010-01-19 00:41:21

+0

我發現如果在第二次調用原始屬性實現時多次調用該屬性,那麼'Expect'不起作用 - 在這種情況下,「存根」實際上是我想要的。 – Justin 2012-06-27 13:05:02

4

您可以:

foo.Stub(f => f.Quantity).Return(5); 
//asserts