Many thanks for the advice, guys. David
2008/7/5 Ben Mabey <[EMAIL PROTECTED]>: > Zach Dennis wrote: > >> A short experience report regarding this thread: >> >> Early on when stories were introduced to rspec's code base I started using >> them, and I tried some different techniques to see what the sweet spot was >> for using stories in actual development. To do some of this I made >> modifications to rspec (this was before stories were released officially) >> >> In my experience I found that trying to build up a highly re-usable set of >> steps caused a lot more overhead, both in the creation of new features and >> in the maintenance of ongoing development or changes to existing features. >> In practice has been much easier for me to build reusability in the form of >> helper methods which sit behind steps, and even to allow yourself to have >> very simple (even one line) step definitions. >> >> One problem I noticed I ran into was that I spent too much time trying to >> organize and group reusable sets of steps. This made it difficult when one >> story changed in how it did something, but another one did not, and it made >> my stories rely on several step files (ie: steps_for => [:site_navigation, >> :project_navigation, :project_creation, etc.]). Sometimes I would end up >> having to reorganize, or split one step into two, and then go find all >> places where things would be affected by this, etc. >> >> I also found that by focusing on this kind of step reusability I was >> writing much more granular stories (ie: implicit story style). When trying >> out what is now known as the declarative story style I have found that >> introducing new features and changing existing features takes much less time >> when all of my steps for a story are in as few as possible step files >> (typically just one step file). When I notice that two stories both have a >> scenario where the implementation of a step is the same, I pull that out >> into a helper much like David suggested. Now if one of those stories >> changes, you can change its step w/o affecting any others. >> >> In summary, don't focus on step reusability across stories, instead pull >> out helpers while allowing the steps to be defined separately for their >> respecive stories. This will make it easier to introduce new features and >> maintain/change existing features over the lifetime of the app. >> >> HTH, >> >> Zach >> >> > +1. I have had the exact same experience. Reusing story steps too > aggressively tends to lead to awkward stories that have a higher maintenance > cost for several reasons. > -Ben > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users