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.