Hi,
Do you think this is a satisfactory way to group step files related to
one feature
e.g.
publish_content_givens
publish_content_whens
publish_content_thens
?
Thanks
Aidy
Hi,
Do you think this is a satisfactory way to group step files related to
one feature
e.g.
publish_content_givens
publish_content_whens
publish_content_thens
?
Thanks
Aidy
Have a read of this:
Basically rather than saving your steps in files named around the
feature, it’s better to group them around the object(s) they work on.
Also occasionally you may want to use a when as a given. Cucumber
doesn’t actually use the given|when|then|and to differentiate steps,
just the regex that comes after them. Sometimes I feel that it makes
sense as in the following examples
When I log in as Fred
....
Given I log in as Fred
When I’m writing the login feature I’d use the first statement, but
when I’m testing foo as a logged in user I’d use the second. Both
would use the same step.
Now I realise that this counters the excellent advice given on the
step-organisation page of the wiki. However I think in this case even
though the step is definitely a when it should be allowed to be used
as a Given in some stories as its definitely a setup step rather than
an interaction step in certain|most contexts
Finally Cucumber tells you which step is matching your feature so
there is much less need to organise steps by given|when… then there
was with the previous story runner
All best
Andrew
2008/11/20 aidy lewis [email protected]:
On 20 Nov 2008, at 22:05, David C. wrote:
On Thu, Nov 20, 2008 at 10:40 AM, Andrew P.
[email protected] wrote:I actually prefer to keep these separate:
Given I am logged in as Fred
When I log in as Fred
+1, though these days I would probably have the When step matcher call
the Given step directly.
cheers,
Matt
Interesting … so this establishes a convention to use in features
that all Givens are written in the past tense and all whens in the
present tense.
I think its quite important as your feature count grows that you have
conventions to stop getting to much step duplication
e.g.
when I create a foo with a price of £24
when I have a foo whose price is £24
when I have a foo priced at £24
are all the same, and whilst you could write a more complex regex to
match all 3 (i think) it would be much better to apply a general
convention about how you write features to deal with this
I thinks convention is probably a hangover from the old story runner
days and isn’t quite so essential with cucumber, but it does seem to
be quite a good way to restrict your choice of language constructions
in your features which is a good thing if you want to have a
consistent style
Look like I’ve got alot of Givens to rewrite
2008/11/20 David C. [email protected]:
On Thu, Nov 20, 2008 at 10:40 AM, Andrew P. [email protected]
wrote:
When I’m writing the login feature I’d use the first statement, but
when I’m testing foo as a logged in user I’d use the second. Both
would use the same step.Now I realise that this counters the excellent advice given on the
step-organisation page of the wiki. However I think in this case even
though the step is definitely a when it should be allowed to be used
as a Given in some stories as its definitely a setup step rather than
an interaction step in certain|most contexts
I actually prefer to keep these separate:
Given I am logged in as Fred
When I log in as Fred
And then have each call out to a helper method named login_as(name).
This reduces the duplication in the code in the steps, but allows me
to be consistent about the distinctions I make between how Givens and
Thens are expressed.
WDYT?
David
“David C.” [email protected] writes:
I actually prefer to keep these separate:
WDYT?David
This is what I do.
Pat
On Fri, Nov 21, 2008 at 4:35 AM, Andrew P. [email protected]
wrote:
Interesting … so this establishes a convention to use in features
that all Givens are written in the past tense and all whens in the
present tense.
Actually, I put both in the present tense, but Givens describe states
(“there are…” or “___ is…”), while Whens specify an action (“I
create…”).
Peeja
Yeh that just shows how bad my grammer is! Saying that ‘there is’ /
‘there are’ is past tense, really meant ‘something that has already
happened’ … or ‘states’ as you so concisely put it
Thanks
Andrew
2008/11/23 Peter J. [email protected]:
On Thu, Nov 20, 2008 at 8:05 PM, David C. [email protected]
wrote:
I actually prefer to keep these separate:
WDYT?
I also keep both steps separate, but just call the When from inside the
Given
Given “a user logged in as $name” do |name|
When “I log in as #{name}”
end
Given “an anonymous user” do
When “I log out”
end
When “I log in as $name” do |name|
post ‘/sessions’, :login => name, :password => ‘monkey’
end
When “I log out” do
get “/logout”
end
etc
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs