Did you mean to call mockFoo3 in the third pair of calls? Or am I misunderstanding?
On Aug 24, 10:06 pm, Tim Barcz <[email protected]> wrote: > I'll take a peek and get in there. I'm sure by the time I get in there > someone else will solve it. > > > > > > On Mon, Aug 24, 2009 at 1:02 AM, Ayende Rahien <[email protected]> wrote: > > Tim,There is a bug all right. The default behavior now is Repeat.Any > > If it wasn't, I would say that it is expected, since only the first call is > > expected. But 1 & 3 should be the same. > > > On Mon, Aug 24, 2009 at 2:20 AM, Tim Barcz <[email protected]> wrote: > > >> There seems to be a bug in the code below however I am not sure what the > >> "appropriate" behavior should be. (I came across this about a month ago > >> digging into a problem on this board). I am willing to attempt a fix if > >> there is one needed and I know what the proper behavior should be. The > >> code > >> is very simple and provided below. > > >> I'm testing what the difference between Stub and Expect calls are on mocks > >> and what happens when you call. The output for the code below returns > >> (you'll notice a "hole) where "mockFoo called" should be printed: > > >> mockFoo called > > >>> mockFoo2 called > >>> mockFoo2 called > >>> mockFoo2 called > >>> mockFoo2 called > > >> *At this point I'm not sure what the "correct" behavior should be. > >> Should Expect(<method) only set up a single-use return? Is there a bug > >> here?* > > >> [Test] > >> public void HowManyTimesCanAFakeBeCalledAndReturnTheSameValue() > >> { > >> // The interesting thing here is that the first mock (mockFoo) does is > >> only good for one call. > >> // Something about the Arg<string>.Is.Anything causes the return value > >> to be good for only one call > >> // this seems to be a bug when compared to other implementations (Stub > >> allows multiple calls on the object > >> // while returning the same value) > >> var mockFoo = MockRepository.GenerateMock<IFoo>(); > >> var mockFoo2 = MockRepository.GenerateMock<IFoo>(); > >> var mockFoo3 = MockRepository.GenerateMock<IFoo>(); > > >> mockFoo.Expect(x => x.Method(Arg<string>.Is.Anything)).Return("mockFoo > >> called"); > >> mockFoo2.Expect(x => > >> x.Method(null)).IgnoreArguments().Return("mockFoo2 called"); > >> mockFoo3.Expect(x => > >> x.Method(Arg<string>.Is.Anything)).Return("mockFoo3 called").Repeat.Any(); > > >> Debug.WriteLine(mockFoo.Method("hello")); > >> Debug.WriteLine(mockFoo.Method("hello")); > > >> Debug.WriteLine(mockFoo2.Method("hello")); > >> Debug.WriteLine(mockFoo2.Method("hello")); > > >> Debug.WriteLine(mockFoo2.Method("hello")); > >> Debug.WriteLine(mockFoo2.Method("hello")); > >> } > > >> public interface IFoo > >> { > >> string Method(string arg); > >> } > > >> -- > >> Tim Barcz > >> ASPInsider > >>http://timbarcz.devlicio.us > >>http://www.twitter.com/timbarcz > > -- > Tim Barcz > ASPInsiderhttp://timbarcz.devlicio.ushttp://www.twitter.com/timbarcz --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
