2010-01-19 79 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