Spot on.

Thanks for that.

2009/1/10 Simone Busoli <simone.bus...@gmail.com>

> I expect that if you say that your code under test is fine you expect it to
> be called 1,2 and 3 times respectively. Here's how I'd set the test up:
>
> in the test setup:
>
> _processorClient  = MockRepository.GenerateMock<T>();
>
> in the test
>
> _processorClient.Expect(p =>
> p.Start(Arg<V>.Is.Anything)).Repeat(resendAttempts + 1)
>
> ...test your code...
>
> _processorClient.VerifyAllExpectations();
>
> On Sat, Jan 10, 2009 at 9:51 PM, Simone Busoli <simone.bus...@gmail.com>wrote:
>
>> When the test with resendAttempts = 1 is run, how many times do you expect
>> Start to be called?
>>
>>
>> On Sat, Jan 10, 2009 at 9:48 PM, Paul Cowan <dag...@scotalt.net> wrote:
>>
>>> It is definitely being called, I've stepped through the code.
>>>
>>> The TestCase attributes effectively create 3 different tests that are
>>> called from the same test fixture instance.
>>>
>>> For [TestCase(0)] the tests pass.
>>>
>>> When [TestCase(1)] runs, I get the following exception:
>>>
>>> ExpectationViolationException :
>>> IIncidentManagementMessageProcessorClient.Start(any); Expected #1, Actual
>>> #2.
>>>
>>> When [TestCase(2)] runs, I get the following exception:
>>>
>>> ExpectationViolationException :
>>> IIncidentManagementMessageProcessorClient.Start(any); Expected #1, Actual
>>> #3.
>>> It is almost like I need to clear the expectations after each
>>> parameterised run.
>>>
>>> I'll look up the Rhino.Mocks wiki.
>>>
>>>
>>>   2009/1/10 Simone Busoli <simone.bus...@gmail.com>
>>>
>>>> Well then the code under test is broken, it means that your
>>>> processorClient.Start method is not called. There's nothing else in your
>>>> test that could make it fail, since in the assertion  you're ignoring the
>>>> arguments. BTW, that is not the best way to ignore the arguments. Look
>>>> it up in the RhinoMocks wiki.
>>>>
>>>>
>>>> On Sat, Jan 10, 2009 at 8:55 PM, Paul Cowan <dag...@scotalt.net> wrote:
>>>>
>>>>> I did'nt show the paste in the whole method.  Just enough to really ask
>>>>> the question.
>>>>>
>>>>> The whole method now looks like this:
>>>>>
>>>>> [
>>>>> TestCase(0)]
>>>>> [TestCase(1)]
>>>>> [TestCase(2)]
>>>>> public void 
>>>>> Then_the_message_should_only_send_sms_messages(intresendAttempts)
>>>>> {
>>>>>       string messageResendJSON = null;
>>>>>
>>>>>       if (resendAttempts > 0)
>>>>>       {
>>>>>           messageResendJSON = (new List<MessageResend>{new
>>>>> MessageResend(_message, MessageType.SMSMessage,
>>>>>           resendAttempts)}).ToJSON();
>>>>>       }
>>>>>
>>>>>
>>>>> _incidentManagementController.InitialiseBlanketMessage(_callTree.Uid,
>>>>> MESSAGE_TEXT,
>>>>>     MessageType.SMSMessage, messageResendJSON);
>>>>>
>>>>>     _processorClient.AssertWasCalled(x => x.Start(null
>>>>> ), opt => opt.IgnoreArguments());
>>>>> }
>>>>>
>>>>> The initial error I described still exists after the first paramter has
>>>>> been passed into the test.
>>>>>
>>>>>
>>>>>
>>>>>   2009/1/10 Simone Busoli <simone.bus...@gmail.com>
>>>>>
>>>>>> You're welcome. Anyways, I think the point of your question was
>>>>>> another one. As far as I can see you're not using the input parameters of
>>>>>> the test, what are they for?
>>>>>>
>>>>>> On Sat, Jan 10, 2009 at 8:35 PM, Paul Cowan <dag...@scotalt.net>wrote:
>>>>>>
>>>>>>> You are correct.
>>>>>>>
>>>>>>> It seems my knowledge of stubs is wrong.
>>>>>>>
>>>>>>> I thought I would have to stub out the method to ensure that it was
>>>>>>> called.
>>>>>>>
>>>>>>> Cheers for pointing that out,
>>>>>>>
>>>>>>>   2009/1/10 Simone Busoli <simone.bus...@gmail.com>
>>>>>>>
>>>>>>>> No, it's not. What is the first call to stub for? It doesn't set any
>>>>>>>> expectation and doesn't return any value, so I think you could remove 
>>>>>>>> it.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sat, Jan 10, 2009 at 8:19 PM, Paul Cowan <dag...@scotalt.net>wrote:
>>>>>>>>
>>>>>>>>>  >> I don't understand your test. In particular, the first call to
>>>>>>>>> Stub what is supposed to do? It is doing nothing.
>>>>>>>>>
>>>>>>>>> It gets called deep inside the
>>>>>>>>> _incidentManagementController.InitialiseBlanketMessage method.
>>>>>>>>>
>>>>>>>>> _processorClient is a dependency of the
>>>>>>>>> _incidentManagementController.  The dependency is set int the [SetUp].
>>>>>>>>>
>>>>>>>>> Any clearer?
>>>>>>>>>
>>>>>>>>> 2009/1/10 Simone Busoli <simone.bus...@gmail.com>
>>>>>>>>>
>>>>>>>>> and don't understand what you're doing with the test arguments,
>>>>>>>>>> where do you use them?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Sat, Jan 10, 2009 at 7:32 PM, Simone Busoli <
>>>>>>>>>> simone.bus...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> I don't understand your test. In particular, the first call to
>>>>>>>>>>> Stub what is supposed to do? It is doing nothing.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Sat, Jan 10, 2009 at 4:37 PM, Paul Cowan 
>>>>>>>>>>> <dag...@scotalt.net>wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I am trying to run the following tests using the new
>>>>>>>>>>>> paramaterised features of NUnit 2.5
>>>>>>>>>>>>
>>>>>>>>>>>> Here is my test:
>>>>>>>>>>>>
>>>>>>>>>>>> [
>>>>>>>>>>>> TestCase(false, 0)]
>>>>>>>>>>>> [TestCase(true, 1)]
>>>>>>>>>>>> [TestCase(true, 2)]
>>>>>>>>>>>> public void 
>>>>>>>>>>>> Then_the_message_should_only_send_sms_messages(boolresend,
>>>>>>>>>>>> int resendAttempts)
>>>>>>>>>>>> {
>>>>>>>>>>>>     _processorClient.Stub(x => x.Start(null
>>>>>>>>>>>> )).IgnoreArguments();
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _incidentManagementController.InitialiseBlanketMessage(_callTree.Uid,
>>>>>>>>>>>> MESSAGE_TEXT);
>>>>>>>>>>>>
>>>>>>>>>>>>     _processorClient.AssertWasCalled(x => x.Start(null), opt =>
>>>>>>>>>>>> opt.IgnoreArguments());
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> The test passes the first time but for the following 2 test
>>>>>>>>>>>> cases, I get ExpectedViolation exceptions:
>>>>>>>>>>>>
>>>>>>>>>>>> Expected #1, Actual #3.
>>>>>>>>>>>> Expected #1, Actual #2.
>>>>>>>>>>>>
>>>>>>>>>>>> Can anyone see what I am doing wrong?  I've tried placing Repeat
>>>>>>>>>>>> on the stub but get the same error.
>>>>>>>>>>>>
>>>>>>>>>>>> Cheers
>>>>>>>>>>>>
>>>>>>>>>>>> Paul
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" group.
To post to this group, send email to rhino-tools-dev@googlegroups.com
To unsubscribe from this group, send email to 
rhino-tools-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to