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.

Reply via email to