I think there is a fine balance between adding too much abstraction to
go all the way to make non-technical readers perfectly comfortable
(and becoming brain-dead), and pushing them abit to make both
technical writers and non-technical readers comfortable.

And it depends alot on what is the intent of the scenario, eg. if it
is describing invalid email when creating a new user, i would probably
compact:

"
Given I am logged in as 'admin'
When I go to /users
And I follow 'New User'
Then I should see 'Create User' page
...
"

Into a single line:

"
Given I am creating a new user
...
"

And use cucmber's nested steps within the above step to get rid of the
excessive noise, to he;p myself and the reader to focus on the current
context.

TY

==

On Tue, Dec 23, 2008 at 1:55 AM, Star Trader <[email protected]> wrote:
>
> 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
>
> >
>



-- 
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