If that signature you just posted is the real signature, then your
problem is that the method is not virtual.

---
Patrick Steele
http://weblogs.asp.net/psteele



On Mon, Nov 28, 2011 at 10:06 AM, Steven Solomon
<[email protected]> wrote:
> im sorry i posted the wrong signature for RenderToHtml; i am moving away
> from the other one
>
> public string RenderToHtml(List<Result> results)
>         {
>             return "";
>         }
>
> Im having trouble forming an expectation that this is called with an empty
> list of result. does the expect.call() check that args are the same type?
>
> On Mon, Nov 28, 2011 at 9:51 AM, Patrick Steele <[email protected]>
> wrote:
>>
>> 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.
>>
>
> --
> 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