I think the best way at the moment is to use the following trick:

var responses=new Queue<int>();
responses.push(37);
responses.push(65);
....WhenCalled(x=>x.ReturnValue=responses.pop());

I think there was a discussion here a while ago about automatically doing
the above, but I don't think it's been implemented yet

On 28 February 2010 16:35, Tomas Johansson <
[email protected]> wrote:

> What is the most convenient way of specifying a sequence of return
> value from a certain method, when using Rhino Mocks ?
>
> For example, assume that you would like to implement a Test Stub for
> returning some random integers within a certain interval (e.g. between
> 20 and 70 if you would want to use the values for some random ages for
> adult people).
>
> I am used to the Java framework Mockito, and with that framework you
> could do it easily like this, if you want the first invocation to
> return 37, the second to return 65 and so on:
>
> Randomizer randomizer = Mockito.mock(Randomizer.class);
> Mockito.when(randomizer.getRandomInteger(20,
>
> 70)).thenReturn(37).thenReturn(65).thenReturn(28).thenReturn(56).thenReturn(23);
> //Alternatively, you can do it even easier like this with Mockito:
> Mockito.when(randomizer.getRandomInteger(20, 70)).thenReturn(37, 65,
> 28, 56, 23);
>
> You can write code with a similar kind of syntax in Rhino Mocks, which
> compiles fine, but obviously the intended semantics/usage of the
> invocation of the method "Return" (and its returned type
> 'IMethodOptions')
> does not seem to be the same as the Mockito method "thenReturn", since
> the following code throw an exception (Rhino Mocks 3.6):
> MockRepository mocks = new MockRepository();
> var randomizer = mocks.DynamicMock<Randomizer>();
> SetupResult.For(randomizer.GetRandomInteger(20,
> 70)).Return(37).Return(65);
>
> / Tomas
>
> --
> 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]<rhinomocks%[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