views:

498

answers:

2

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
}
+8  A: 

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);
Pete
Using the Stub method worked perfect after I realized I was trying to stub the concrete class rather than the interface. Thanks!
JChristian
+1  A: 

You can just do:

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