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.
