Как создать макет объекта на основе интерфейса и установить свойство только для чтения?

Я новичок в TDD. Так что любая помощь будет оценена. Я использую NUnit и Rhino издевается. Как я могу установить значение идентификатора 1 в моем макете объекта?

Я посмотрел на это: http://www.iamnotmyself.com/2008/06/26/RhinoMocksAndReadOnlyPropertyInjectionPart2.aspx, но, похоже, отражение не работает с интерфейсами.

    public interface IBatchInfo
    {
        int ID { get;}
        Branches Branch { get; set; }
        string Description { get; set; }                                
    }

 [SetUp]
       public void PerFixtureSetup()
       {

           _mocks = new MockRepository();
           _testRepository = _mocks.StrictMock<IOLERepository>();

       }

    [Test]
            public void ItemsAreReturned()
            {
                IBatchInfo aBatchItem=  _mocks.Stub<IBatchInfo>();

                aBatchItem.ID = 1; //fails because ID is a readonly property
                aBatchItem.Branch = Branches.Edinburgh;


                List<IBatchInfo> list = new List<IBatchInfo>();

                list.Add( aBatchItem);

                Expect.Call(_testRepository.BatchListActive()).Return(list);
                _mocks.ReplayAll();

                BatchList bf = new BatchList(_testRepository, "usercreated", (IDBUpdateNotifier)DBUpdateNotifier.Instance);
                List<Batch> listofBatch = bf.Items;

                Assert.AreEqual(1, listofBatch.Count);
                Assert.AreEqual(1, listofBatch[0].ID);
                Assert.AreEqual( Branches.Edinburgh,listofBatch[0].Branch);
            }
12.12.2008 11:49:38
2 ОТВЕТА

Нашел ответ здесь http://haacked.com/archive/2007/05/04/setting-propertybehavior-on-all-properties-with-rhino-mocks.aspx .

Просто вместо

aBatchItem.ID=1;

использовать:

SetupResult.For(aBatchItem.ID).Return(1);
1
12.12.2008 12:08:04
РЕШЕНИЕ

Еще лучше, если использовать Rhino Mocks 3.5:

aBatch.Stub(x => x.ID).Return(0);
1
18.12.2008 13:18:08
Спасибо, это было именно то, что я искал!
mxmissile 9.04.2009 20:11:36