From: Peter M. <pet...@gm...> - 2006-07-20 21:21:49
|
I have a small feature request. It would be nice to make quick stubs using NMock for property based objects (i.e. data objects). Quite often I want to do something like this: public interface IDataObject { string Name {get;set;} string Address {get;set} . . . } [Test] public void InsertsDataObjectsIntoDatabase() { IDataObject dataStub = mocks.CreateStub<IDataObject>(); dataStub.Name = "My Name"; dataStub.Address = "12 Acarde Av"; . . . dataLayer.CreateRow(dataStub); Assert.IsTrue(IsRowInDatabase(dataStub)); } It would be nice to do this easily without having to create classes or do the whole Expect.AtLeaseOnce.On(mockData) on every property. It would be a good idea to still do Stub.On(object).Method(x)... Overall it's just sometimes you need a dumb object to store data and nothing else and have the calling object deal with it pure (which your implementation might not) and you don't really want to couple it with your implementation. I know you could make your own MockDataObject class (which is what I do currently) but it's still a load of work (and something you should then test). Doing mocks.CreateStub() would really cut down the effort and speed up test development. Also, I think it would be a nice idea to do Expect.Clear(); This is because sometimes I have a common [SetUp] method which prepares my mocks which works for 90% of the tests in the test case and some occasional tests won't meet the expectations. I know its bad really but its easier to stick the preparation and validation in the SetUp and TearDown routines rather than having to remember to stick them into every test (which can be a nightmare when you've 30 odd tests in one fixture). Any ideas/thoughts? Many thanks Jupiter Moon |