Hi Patrick, This looks a better approach than what I am doing now. Thanks for the reply.
On Mon, Sep 19, 2011 at 8:14 PM, Patrick Steele <[email protected]>wrote: > If you have similar expectations for 10-12 methods, I would put the > setup of those expectations in another method, but defer creation and > set up of the one particular method inside your unit test: > > public void Test() > { > var mock = MockRepository.GenerateMock<ISomething>(); > SetUpStandardExpectations(mock); > mock.Expect(c => c.DoSomething()).Throw(new ApplicationException()); > > ... > } > > Just my 2 cents... :) > > --- > Patrick Steele > http://weblogs.asp.net/psteele > > > > On Mon, Sep 19, 2011 at 10:40 AM, vishal.gupta <[email protected]> wrote: > > Hi Patrick, > > This is just an small example, I have Interfaces which have 10-12 methods > > and each method is being tested for different values. I did not put that > > code here as it will be difficult to understand. I would like to know if > > there is better way to achive this thing as I have to create a mock > object > > for each and every thing. > > > > Thanks. > > Vishal > > > > On Mon, Sep 19, 2011 at 4:55 PM, VG <[email protected]> wrote: > >> > >> Hi, > >> > >> I am having problem while unit testing an Interface Method for > >> different values . I want to return different values for a method > >> while mocking it . Currently I am creating multiple mock objects to > >> return multiple values. I will paste my controller code,mock methods > >> and unit tests that I have written to perform the test . > >> > >> This is my controller code : > >> [Transaction] > >> public ActionResult CopyEvent() > >> { > >> int copiedEvent; > >> try{ > >> copiedEvent = _symposiaEventQueries.MakeCopyOfEvent(); > >> > >> TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] > >> = > >> "The Symposia Event was successfully copied. > >> Please make any necessary adjustments"; > >> }catch(Exception ex){ > >> return Content("Error: "+ex.Message); > >> } > >> return Content(copiedEvent.ToString()); > >> } > >> > >> I am creating mock objects for symposiaEventQueries as below : > >> > >> public static ISymposiaEventQueries > >> CreateMockSymposiaEventQueriesWhenMakeCopyOfEventReturnstwo() > >> { > >> var mockedRepository = > >> MockRepository.GenerateMock<ISymposiaEventQueries>(); > >> mockedRepository.Expect(mr => > >> mr.MakeCopyOfEvent()).Return(2); > >> return mockedRepository; > >> } > >> > >> public static ISymposiaEventQueries > >> CreateMockSymposiaEventQueriesWhenMakeCopyOfEventReturnsOne() > >> { > >> var mockedRepository = > >> MockRepository.GenerateMock<ISymposiaEventQueries>(); > >> mockedRepository.Expect(mr => > >> mr.MakeCopyOfEvent()).Return(1); > >> return mockedRepository; > >> } > >> > >> public static ISymposiaEventQueries > >> CreateMockSymposiaEventQueriesCopyEventThrowsExpection() > >> { > >> var mockedRepository = > >> MockRepository.GenerateMock<ISymposiaEventQueries>(); > >> mockedRepository.Expect(mr => > >> mr.MakeCopyOfEvent()).Throw(new Exception("")); > >> return mockedRepository; > >> > >> I have created three diff methods to return the ISymposiaEventQueries > >> object. While unit testing I call respective methods to perform the > >> unit testing. > >> > >> The unit Test code is below : > >> > >> [Test] > >> public void > >> CanCopyEventWhenEventIdExistsReturnsNewEventIdAsContent() { > >> _symposiaEventQueries = > >> SharedMockInterfaces.CreateMockSymposiaEventQueries(); > >> var result = _controller.CopyEvent(); > >> > >> var content = (ContentResult) (result); > >> Assert.AreEqual(content.Content, "2"); > >> > >> > >> > _symposiaEventQueries.AssertWasCalled(x=>x.MakeCopyOfEvent(0,0),y=>y.IgnoreArguments()); > >> > >> > >> > _controller.TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()].ToString() > >> .AssertSameStringAs("The Symposia Event was successfully > >> copied. Please make any necessary adjustments"); > >> } > >> > >> [Test] > >> public void CanNotCopyEventWhenCopyEventThrowsException() { > >> _symposiaEventQueries = > >> > >> > SharedMockInterfaces.CreateMockSymposiaEventQueriesCopyEventThrowsExpection(); > >> var content = (ContentResult)_controller.CopyEvent(); > >> content.Content.AssertSameStringAs("Error: "); > >> } > >> > >> Can anybody give me better approach to this , I think i doing it the > >> wrong way. > >> > >> Thanks in advance. > >> Vishal > > > > -- > > 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. > > > > -- > 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. > > -- 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.
