Thanks for sharing your thoughts...I'll have to chew on this a bit more. I'm am by no means an authority on testing and really adjust what I do based on friction and feedback I'm internalizing as I'm developing my applications.
I'll think/stew on this a bit.... Tim On Mon, Mar 23, 2009 at 2:38 PM, (luKa) <[email protected]> wrote: > > Tim yes that what I'm saying > > I see 2 thread-off here > > 1) having interaction-based tests with mocks that are sensitive enough > to catch errors/bugs and insensitive enough not to break at every > small refactoring > 2) having mock framework powerful enough to easily mocks objects and > basic enough to let the developer fill the code design smells > > from the TDD point of view , the #2 is by far the most important. > I would say that 8 times out of 10 when an interaction-based test is > fragile it is a smell that > - in the object under test there is inappropriate responsibility > coupling , or > - the object under test is interacting with too low-level objects or > it is exposing internal low-level implementation details > the other 2 times, once mocks where used for input or state testing > instead of stabs and the other a hand coded mocks will do the job > (better then complicated mock tool features) > > for #1, there are objects (like simulation objects or math/statistic > objects) that change their global state from every single methods, > because of this a dynamic mock will be too insensitive of bugs. since > you cannot predict the evolution of your objects I feel a little > dangerous the use of dynamic mocks > > > > > On Mar 23, 1:36 am, Tim Barcz <[email protected]> wrote: > > If I may summarize...I believe you are saying that the dynamic mocks > create > > more brittle tests than tests where strict mocks are used (CreateMock in > > previous versions of RhinoMocks). > > I resonate with what you are saying. I held this view for some time as I > > felt that strict mocks were more "correct". As someone who has used > > RhinoMocks for a few years I can say that I understand the move to > deprecate > > CreateMock. I found through our experience that our tests were far more > > brittle using strict mocks. You mention agile and feedback loops and > > failing fast. What I found is that our use of strict mocks did now allow > > for easy refactoring, another highly held agile principle. The issue I > see > > with "failing fast" and strict mocks is that often the failing tests are > > really just false positives. > > > > If you're concerned something might be called that shouldn't be...you can > > always test for specific scenarios...ie. say AssertWasNotCalled or > > Expect().Times.Never > > > > Very interested in hearing your thoughts and others. > > > > Timhttp://www.twitter.com/timbarcz > > > > On Sun, Mar 22, 2009 at 6:52 PM, (luKa) <[email protected]> wrote: > > > > > Ciao from Stockholm, > > > > > I'm reading this > > > > >http://ayende.com/wiki/Rhino+Mocks+3.5.ashx#CreateMockisdeprecated,re. > .. > > > and I've noted that dynamic mocks can lead to flawed tests. > > > > > Going on with the example in the link, suppose that with the evolution > > > of the sw the method RevertUserChanges() is added to the > > > IUserRepository interface. > > > Then a dev introduce a bug in the LoginController.ForgotMyPassword() > > > so that RevertUserChanges() get called by mistake. > > > As I understood the Dynamic Mock now wont raise an error because of > > > this call to RevertUserChanges(). > > > > > I feel that brittle tests are a smell for responsibilities that must > > > be decoupled instead of a need for object dynamically mocked. What you > > > think ? > > > when I think about exception I see a similarity, I prefer to get the > > > exception instead of running the risk of catching and ignoring an > > > important problem. > > > > > The agile principle here is feedback and fail fast > > > > > Luca Minudel > > > Stockholm, Sweden GMT+1 > > >http://www.linkedin.com/in/lucaminudelen-GB > > >http://blogs.ugidotnet.org/luKa/it-IT > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
