问题
I have a class with a private set property that I want to stub out with rhino mocks. When I try to do this, though, it gives me a compile time error saying I can't set a read only property. I'm new to using Rhino Mocks so I must be missing something here...
public Interface IFoo
{
int Quantity { get; }
}
[TestMethod]
public void SomeTest()
{
IFoo foo = MockRepository.GenerateStub<IFoo>();
foo.Quantity = 5;
//Asserts and such
}
回答1:
Use:
foo.Stub (f => f.Quantity).Return (5);
See http://ayende.com/Wiki/Rhino+Mocks+3.5.ashx#UsingExpecttosetupproperties
You can also use:
foo.Expect(f => f.Quantity).Return (5);
回答2:
You can just do:
foo.Stub(f => f.Quantity).Return(5);
//asserts
来源:https://stackoverflow.com/questions/2090191/stubbing-a-read-only-property-with-rhino-mocks