What bill said. Or get your container to resolve the mock. Ctor injection is preferred tho On Nov 12, 9:07 am, bill richards <[email protected]> wrote: > It looks to me that you are using some kind of DI container, so is it > not possible for you to use constructor injection for your object, eg. > > public class LoadHandler: ILoadHandler > { > private ILoadController _loadController; > > public LoadHandler(ILoadController loadController) > { > _loadController = loadController; > } > > } > > If you can do this, then you simply mock the ILoadController and pass > the mock in to your call to construct LoadHandler in the test ... > > [Test] > SomeMeaningfulTestName() > { > var controllerStub = MockRepository.GenerateStub<ILoadController> > (); > controllerStub.Stub(c=>c.GetLoads).Return(MyMockDataSet); > var handler = new LoadHander(controllerStub); > > // ACTION > > // ASSERT > > } > > On Nov 11, 7:48 pm, joshlrogers <[email protected]> wrote: > > > > > I am new to mocking frameworks, haven't ever used one. With that said > > I have no idea if any mocking framework more or less Rhino mocks is > > capable of doing what I am needing. > > > I have a handler class that does just that it handles all the actions > > and data flow for a particular module of my application. I am writing > > unit tests against this handler class, and it is getting quite > > burdensome because this handler class makes reads and writes to the > > DB. I want to mock the data access classes that the handler class > > uses and keep the logic of the handler class itself. However, I am > > unable to see how to do this. > > > I am able to mock the handler class, but because I intercept the calls > > to the methods and return just what I say it doesn't test the logic of > > the handler class itself. This handler class has instantiations of > > the data access objects and those are what I am trying to mock. For > > instance a contrived example would be: > > > public class LoadHandler: ILoadHandler > > { > > > private ILoadController _LoadController; > > private DataTable _LoadTable; > > > public LoadHandler() > > { > > _LoadController = _Resolver.Resolve<ILoadController>(); > > } > > > public object FillLoadTableAndDoSomethingSpiffy() > > { > > _LoadTable = _LoadController.GetLoads(); > > ...proceed on to doing something spiffy and return a value... > > } > > > } > > > So I want to write a unit test to make sure that > > FillLoadTableAndDoSomethingSpiffy returns the expected value, however > > I don't want the LoadController to actually read from the DB, that is > > the part I want to mock so that I can control what that returns. > > > Is this even possible, and if so could you point me in the right > > direction? > > > Thanks,
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Rhino.Mocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rhinomocks?hl=en -~----------~----~----~----~------~----~------~--~---
