Oh, sorry. I missed that part. Odd... I actually surprised that code even compiles since your RenderToHTML method doesn't accept a List<Result>.
Can you post a complete, failing test case? --- Patrick Steele http://weblogs.asp.net/psteele On Mon, Nov 28, 2011 at 9:43 AM, Steven Solomon <[email protected]> wrote: > The strange thing is this expectation never even fails. It actually passes > but the RenderToHtml method is never called. > > On Mon, Nov 28, 2011 at 9:13 AM, Patrick Steele <[email protected]> > wrote: >> >> My guess is that you have an expectation defined as: >> >> mockRenderer.Expect(x => >> x.RenderToHtml(Arg<List<Result>>.Matches(y => >> y.Equals(new List<Result>()) >> )) >> ); >> >> That expectation has it's own List<Result> (a new one). Then, when >> your manager does its work, it creates its own List<Result> >> internally. It will be a different List<Result> than what was defined >> in your expectation so that's probably why it's failing. >> >> If you're expecting an empty list, there's a couple of different >> things you could do: >> >> 1. Use WhenCalled() on your stub object and do an Assert.Fail if the >> List<Result> passed to the method doesn't have a count of zero. >> 2. Use GetArgumentsForCallsMadeOn() after running the test to pull the >> argument (the List<Result>) that was sent to your stub and see if it >> has a count of zero. >> >> --- >> Patrick Steele >> http://weblogs.asp.net/psteele >> >> >> >> On Mon, Nov 28, 2011 at 9:05 AM, Steven Solomon >> <[email protected]> wrote: >> > public class Request >> > { >> > public virtual string ExecuteRequest() { ... } >> > } >> > >> > public class Translator >> > { >> > public virtual List<Result> Translate(String xml) { ... } >> > } >> > >> > // NOTE: this is the class where the expectation is ignored >> > public class Renderer >> > { >> > public virtual string RenderToHtml() { ... } >> > } >> > >> > On Fri, Nov 25, 2011 at 9:19 AM, Patrick Steele >> > <[email protected]> >> > wrote: >> >> >> >> Can you also show the signatures of the various methods you're mocking? >> >> >> >> --- >> >> Patrick Steele >> >> http://weblogs.asp.net/psteele >> >> >> >> >> >> >> >> On Wed, Nov 23, 2011 at 12:25 PM, Steven Solomon >> >> <[email protected]> wrote: >> >> > Hi all, >> >> > >> >> > I am trying to test that a manager class with call its collaborators >> >> > when i call GetRecommendations on it >> >> > however the mockRender expectation is ignored? I am trying to test >> >> > that the renderer will be called >> >> > with an empty list of results. Any insight into this is greatly >> >> > appreciated. >> >> > >> >> > var mocks = new MockRepository(); >> >> > >> >> > var mockRequest = mocks.StrictMock<Request>("somequery"); >> >> > var mockTranslator = mocks.StrictMock<Translator>(); >> >> > var mockRenderer = mocks.StrictMock<Renderer>(); >> >> > >> >> > Expect.Call(mockRequest.ExecuteRequest()).Return("xml"); >> >> > Expect.Call(mockTranslator.Translate("xml")); >> >> > // we are expecting an empty list of results >> >> > mockRenderer.Expect(x => >> >> > x.RenderToHtml(Arg<List<Result>>.Matches(y => >> >> > y.Equals(new List<Result>()) >> >> > )) >> >> > ); >> >> > >> >> > mocks.ReplayAll(); >> >> > >> >> > // SUT >> >> > Manager manager = new Manager(mockRequest, mockTranslator, >> >> > mockRenderer); >> >> > manager.GetRecommendations(); >> >> > >> >> > mocks.VerifyAll(); >> >> > >> >> > -- >> >> > 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. >> > >> >> -- >> 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.
