I think that "when I go to /login" is to low-level.  Why not write
"When I login" or "Given I am logged in" and fill in all the steps the
it takes a user to login.  This is more reusable and is perfectly
understandable to non-technical readers.

On Dec 20, 10:12 am, Jon Hancock <[email protected]> wrote:
> TY, Michael,
> thanks for the continued input on this.  I'll play with these ideas.
> Jon
>
> On Dec 21, 12:33 am, "Tze Yang Ng" <[email protected]> wrote:
>
> > When writing cucumber's features, we have to really think like the
> > end-user, and write stuff that end-users will understand.
>
> > When editing a user, the natural flow goes like this:
> > "
> > Given the following users exists in the system ...
> > And I go to /users
> > When I click on 'Edit' for Cathy
> > Then I should go to 'Edit User' Page
> > Given I fill in 'Name*' with 'Carol'
> > When I click on 'Save'
> > Then I should go  to 'Manage Users' Page
> > And I should see 'User successfully updated'
> > And I should see Cathy updated as Carol
> > "
>
> > When creating a new user, the natural flow goes like this:
> > "
> > Given I go to /users
> > When I click on 'New User'
> > Then I should go to 'Create User' Page
> > Given I fill in 'Name*' with 'Carol'
> > And I fill in ...
> > And I fill in ...
> > When I click on 'Save'
> > Then I should go  to 'Manage Users' Page
> > And I should see 'User successfully created'
> > And I should see Carol
> > "
>
> > U can see the gist athttp://gist.github.com/38355
>
> > Hope this helps to clear things up.
>
> > :] TY
>
> > ==
>
> > On Sat, Dec 20, 2008 at 11:42 PM, Jon Hancock <[email protected]> wrote:
>
> > > Thanks, I'll check out your salad ;).
> > > As to the first issue, I think you make my point well.  If you want to
> > > push the implementation issues into the work steps or even lower, you
> > > should not have the statement:
> > > "When I go to /login"
> > > Which states a specific path.  What if the path is "/sessions/new".
> > > What if the statement was:
> > > "When I go to update a post" and because your following resource path
> > > rules, the path is actually "/posts/123/edit".  Do we train the people
> > > writing the scenarios on the default naming of CRUD based resources?
> > > How much magic do we need to put into the work steps to allow natural
> > > language scenarios?
> > > For many of us, the person writing the tests is also the developer and
> > > there is little point in building too much abstraction.  Either way, a
> > > little abstraction is still useful.  But to much abstraction?
> > > This is why I like using the name of the route, as the real path is
> > > already buried in implementation, your router.rb file.
>
> > > I recall very similar discussions when use cases started to become
> > > popular in the early to mid 90s.  The issue was "How much should the
> > > use case language be natural language versus using nomenclature of the
> > > developers?"  It turns out the people writing use case are the same
> > > people assisting with defining the object model and their names.  This
> > > is the perfect point where language needs to be bridged between user
> > > and developer.  It is where nomenclature gets defined and refined.
>
> > > thanks, Jon
>
> > > On Dec 20, 12:15 pm, "Tze Yang Ng" <[email protected]> wrote:
> > >> Just voicing my thoughts:
>
> > >> > 1 - Instead of "When I go to /login" I would like the option of
> > >> > writing "When I go to login" or When I go to :login"  whereby if I
> > >> > don't pass in something that looks like a path, it will use the merb
> > >> > url() method to to get the path by name.  Does someone have a hacked
> > >> > version of common_webrat.rb
>
> > >> ME: personally i don't like this idea, cucumber's features is supposed
> > >> to bridge the gap between developers (technical) and end-users
> > >> (non-technical) ... an expression like "When I go to /login" is
> > >> obvious to all parties abt the intention of the step, that is,
> > >> accessing of "/login".
>
> > >> Whereas "When I go to login" or "When I go to :login" don't, there is
> > >> an additional layer introduced, the non-technical guys may ask, how do
> > >> i go to "login" or ":login" ???
>
> > >> > 2 - Not sure the appropriate way to load sample data for cucumber
> > >> > tests.  Are these called fixtures in cucumber?  What are others doing
> > >> > here for datamapper test data?
>
> > >> ME: Quite sometime ago, i done something 
> > >> athttp://github.com/ngty/ty_cucumber_salad, haven't got the chance to
> > >> update it due to many other distractions in life. Anyway, u can find
> > >> the answers to ur this particular question there.
>
> > >> Cheers
>
> > >> ==
>
> > >> On Sat, Dec 20, 2008 at 9:51 AM, Jon Hancock <[email protected]> 
> > >> wrote:
>
> > >> > I finally have the basics of cucumber working with Scenario Outlines.
> > >> > There are two things I need next:
>
> > >> > 1 - Instead of "When I go to /login" I would like the option of
> > >> > writing "When I go to login" or When I go to :login"  whereby if I
> > >> > don't pass in something that looks like a path, it will use the merb
> > >> > url() method to to get the path by name.  Does someone have a hacked
> > >> > version of common_webrat.rb
>
> > >> > 2 - Not sure the appropriate way to load sample data for cucumber
> > >> > tests.  Are these called fixtures in cucumber?  What are others doing
> > >> > here for datamapper test data?
>
> > >> > thanks, Jon
>
> > >> --http://ngty77.blogspot.com
>
> > --http://ngty77.blogspot.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"merb" 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/merb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to