+1
Yay!
David
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cu...@googlegroups.com.
To unsubscribe from this group, send email to cukes+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
Removing web_steps.rb has my vote, for what it is worth. However, I
On Sep 27, 10:17 am, aslak hellesoy <aslak.helle...@gmail.com> wrote:
>
> web_steps.rb isn't much more than a thin layer around the Capybara API. As a
> result, many people don't even learn the Capybara API, which they should.
> The Capybara API is well-documented. I want people to write their own step
> definitions in a more declarative style, specific to their domain. -With 3-4
> Capybara calls in them.
>
recall that the examples it contained, however misleading in the end,
were nonetheless helpful to me when first starting out with BDD and
Cucumber.
Instead of simply removing it is it possible to simply
rename web_steps.rb to steps.examples and then perhaps refactor it so
as to show the more declarative style as desired?
The result could be
installed into features/step_definitions where it would be available
as a guide for newbies and simply purged or ignored by old hands.
I will undertake to do said refactoring if this suggestion meets with
approval and if I can call upon the list to provide me with examples
to use in addition to my own. I would venture that most here have one
or two step definitions they have constructed which they feel are
particularly noteworthy for one reason or another. Those sort of
examples, together with a brief outline of what they do and why they
do it it in the manner chosen, would be particularly valuable for the
newcomer.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cu...@googlegroups.com.
To unsubscribe from this group, send email to cukes+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
2011/9/28 byrnejb <byr...@harte-lyne.ca>
On Sep 28, 9:10 am, aslak hellesoy <aslak.helle...@gmail.com> wrote:
> On Wed, Sep 28, 2011 at 1:55 PM, byrnejb <byrn...@harte-lyne.ca> wrote:You can argue that, but it would not alter the fact that I did learn
>
> > On Sep 27, 10:17 am, aslak hellesoy <aslak.helle...@gmail.com> wrote:
>
> > > web_steps.rb isn't much more than a thin layer around the Capybara API.
> > As a
> > > result, many people don't even learn the Capybara API, which they should.
> > > The Capybara API is well-documented. I want people to write their own
> > step
> > > definitions in a more declarative style, specific to their domain. -With
> > 3-4
> > > Capybara calls in them.
>
> > Removing web_steps.rb has my vote, for what it is worth. However, I
> > recall that the examples it contained, however misleading in the end,
> > were nonetheless helpful to me when first starting out with BDD and
> > Cucumber.
>
> Then I would argue that it didn't really help you.
much from examining the example steps.
+1
2 cents: i normally work in those kind of teams where i have to really work hard to convince developers and management to give cucumber a try, they (even I) might do it wrong when they (I) do it, but still there's value in doing it 60% ok. I really think that rising the entry level is not an intelligent choice, imho
On Wed, Sep 28, 2011 at 3:20 PM, Joaquin Rivera Padron <joah...@gmail.com> wrote:2011/9/28 byrnejb <byr...@harte-lyne.ca>
On Sep 28, 9:10 am, aslak hellesoy <aslak.helle...@gmail.com> wrote:
> On Wed, Sep 28, 2011 at 1:55 PM, byrnejb <byrn...@harte-lyne.ca> wrote:You can argue that, but it would not alter the fact that I did learn
>
> > On Sep 27, 10:17 am, aslak hellesoy <aslak.helle...@gmail.com> wrote:
>
> > > web_steps.rb isn't much more than a thin layer around the Capybara API.
> > As a
> > > result, many people don't even learn the Capybara API, which they should.
> > > The Capybara API is well-documented. I want people to write their own
> > step
> > > definitions in a more declarative style, specific to their domain. -With
> > 3-4
> > > Capybara calls in them.
>
> > Removing web_steps.rb has my vote, for what it is worth. However, I
> > recall that the examples it contained, however misleading in the end,
> > were nonetheless helpful to me when first starting out with BDD and
> > Cucumber.
>
> Then I would argue that it didn't really help you.
much from examining the example steps.
+1
2 cents: i normally work in those kind of teams where i have to really work hard to convince developers and management to give cucumber a try, they (even I) might do it wrong when they (I) do it, but still there's value in doing it 60% ok. I really think that rising the entry level is not an intelligent choice, imho
Why do you think that?
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cu...@googlegroups.com.
To unsubscribe from this group, send email to cukes+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
--You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cu...@googlegroups.com.
To unsubscribe from this group, send email to cukes+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to cu...@googlegroups.com.
To unsubscribe from this group, send email to cukes+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cukes?hl=en.
I learned a lot from websteps, too. But, I already have a copy of it
that I can refer to, so it doesn't bother me if you stop including it.
That will only hurt people who are starting cucumber in the future.
On Wed, Sep 28, 2011 at 12:11 PM, Paul <pa...@nines.org> wrote:>>>> You can argue that, but it would not alter the fact that I did learnI learned a lot from websteps, too. But, I already have a copy of it
>>>> much from examining the example steps.
that I can refer to, so it doesn't bother me if you stop including it.
That will only hurt people who are starting cucumber in the future.
The question arises: Are the step definitions bundled with Aruba going
to be removed as well?
If so then when? If not then why not?
+1 ( or as many as I'm allowed)
The best thing in web steps was the statement in web steps telling
people not to write steps like the ones in web steps.
I think you could write a good set of domain specific steps to give
people a guide. Choosing something like Sign In/Sign Out, which is
fairly common in web apps. Perhaps we could create a github project
for this and link to it in Cucumber's readme, so we can give people a
lift with starting out.
All best
Andrew
--
------------------------
Andrew Premdas
blog.andrew.premdas.org
I think you could write a good set of domain specific steps to give
people a guide. Choosing something like Sign In/Sign Out, which is
fairly common in web apps. Perhaps we could create a github project
for this and link to it in Cucumber's readme, so we can give people a
lift with starting out.
This would be nice. Matt suggested something similar
(https://github.com/cucumber/cucumber-rails/commit/f027440965b96b780e84e50dd47203a2838e8d7d#commitcomment-624933)
on the related Github issue and I did too, somewhere (can't find it
back).
Here is a copy of my latest thoughts, expressed as a reply to Matt's
comment on Github (I should have done that here in the first place
:)):
> I think we need to put some effort into writing some decent online tutorials to show this group how to do it the right way. It isn't hard when you know how.
+1 to that. I'd be glad to help.
Also, it would be nice to clarify what is Behaviour-Driven
Development. It looks to me that for some, BDD has become a cooler
name for TDD, a synonym for acceptance tests, integration tests, tests
for people who can't write code. In my mind it's much more than
programming techniques.
I think The Cucumber Book is going to help a lot for understanding the
purpose of Cucumber and what is BDD in general. It seems like a great
step forward to me.
But of course, not everyone is going to buy it (unfortunately ;)).
In that respect, the death of web steps is also a good thing.
To use Cucumber "right" (i.e. as a BDD tool), one has to understand
that communication is essential and Cucumber's main goal is primarily
about communication and secondarily about testing.
The cukes.info homepage mentions the word "test" at least 8 times
while "behaviour" appears only once. Maybe it's time to think again
about the words used to promote and document Cucumber. We're supposed
to embrace the ubiquitous language concept: let's do that in our own
documentation!
E.g. don't use the word "test", use "scenario": unconsciously it will
probably have the effect of thinking more about Cucumber as an
efficient way for expressing behaviour rather than a "testing tool".
My point is: Cucumber is pretty well known today and it should use
that renown to foster higher BDD values and concepts. Actually, I
think that message is already carried by Cucumber, but in a clumsy
fashion. Of course, there are certainly fair and understandable
reasons to that. But now that Cucumber has matured and knows its way,
maybe it's time to focus on and improve its message.
> A webapp user's domain is not "click thisI thought this was about the behavior of the user,
link, look for this string".
not the programmer coding it?
I understand that trying to clean up features is a good idea.
Sure it makes sense to refactor steps into more concise readable
and expressive sentence, I think the fundamental issue is that people
don't refactor, they don't tend to see patterns of commonality and
clean stuff up, or they just don't bother.
I just installed a new rails app, and my first feature was to allow
a user to signup.
this feature was not: "And I signup"
I have not figured out how that happens yet.
If I am thinking about the user experience I am thinking
of first loading the homepage and then clicking the "signup" link.
and waiting to see the next page.
I will extract these steps later when I want to re-use this.
What's wrong with this exactly?
I have watched the video referenced (MDD).
I think that there are some good ideas here and the features
are even more clear than I tend to make them.
I think the goals are good, but the approach is annoying.
> I want people to write their own step definitions in a more declarative style, specific to their domain. -With 3-4 Capybara calls in them.Sure, fine, have you actually achived that though?
You just hid the cookie jar, and not very well.
On Oct 8, 4:09 am, aslak hellesoy <aslak.helle...@gmail.com> wrote:
> On Fri, Oct 7, 2011 at 9:58 PM, Brent <brentgre...@gmail.com> wrote:I think that the basic issue is that a crutch (websteps == cookie
> > You just hid the cookie jar, and not very well.
>
> I love metaphors, but you lost me here.
>
> Aslak
jar) for the newcomer has been removed (hidden).
I feel uneasy about the entire way this decision has been presented as
a transition from childhood to maturity. The issue is simply one of
ignorance and knowledge. Making it more difficult for someone to
move from ignorance to knowledge does not strike me as a good thing.
I agree that the existing web steps were of questionable value once a
certain level of experience was reached. No doubt the same lesson of
why the declarative style is superior to the imperative style was
painfully learned and relearned by many, perhaps most, first time
users of Cucumber.
However, I wonder if trying to prevent this experience is not
actually counterproductive. When learning to walk you have to fall
down, repeatedly. When learning to write you have to produce a lot of
wastepaper. It is just the way things are. I think that a lot of
intellectual progress is obtained in similar fashion, you have to
first experience the failure to recognize and master the success.
I did find it useful to "touch the hot stove" of web_steps. It's given
me the understanding of what the pitfalls are and I think it was a
useful exercise.
I just think that there are those of us who feel like there are a
"couple missing rungs in the ladder".
Personally, I'm at a point where I really, really want to incorporate
Cucumber and I'm finding it fairly easy to create imperative scenarios
and I tend to get stuck and work slower trying to get to declarative
ones. I'm ready for the "Declarative Cucumber for Dummies" book. But
until then, at least I'm getting something out of Cucumber.
I did find it useful to "touch the hot stove" of web_steps. It's given
me the understanding of what the pitfalls are and I think it was a
useful exercise.
I just think that there are those of us who feel like there are a
"couple missing rungs in the ladder".
> One may liken the situation to crossing a chasm on a rope bridge in
> order to learn how to fly and then removing the rope bridge in the
> belief that everyone really should just fly. True insofar as it goes,
> but what if it was the very passage over the rope bridge which started
> the process of mastering flight? What then of those that follow? Ah,
> they must find their own path to flight, a path that might only be
> visible to those that already can fly.
Sorry James, but I have to call "bollocks" to that. web_steps was a dead end.
On 27 September 2011 15:17, aslak hellesoy <aslak.h...@gmail.com> wrote:Hi allThe presence of web_steps.rb in Rails projects using Cucumber-Rails leads people down a very bad path. While it gives people a head start in writing scenarios it also tricks people into writing scenarios are extremely verbose and fragile. People who are new to Cucumber don't always realise this, so they continue cranking out lots of crap scenarios based on web_steps.rb. This is like the boiling frog story - you don't realise how messed up the situation is before it's too late and you have a TON of features nobody wants to touch.web_steps.rb isn't much more than a thin layer around the Capybara API. As a result, many people don't even learn the Capybara API, which they should.The Capybara API is well-documented. I want people to write their own step definitions in a more declarative style, specific to their domain. -With 3-4 Capybara calls in them.If you disagree with this decision, please see this: http://skillsmatter.com/podcast/home/refuctoring-your-cukes(Go see it even if you agree with me - it's awesome).Can I just clarify that web_steps.rb is only being removed from the gem, so it won't be added to new projects when they generate cucumber?Any projects which have a web_steps.rb already won't be losing it when they update, I'm guessing?
--SteveHeavies LimitedRegistered Number: 7612561Registered Address: Parmenter House, 57 Tower Street, Winchester SO23 8TD
A webapp user's domain is not "click thislink, look for this string".
I thought this was about the behavior of the user,
not the programmer coding it?
I understand that trying to clean up features is a good idea.
Sure it makes sense to refactor steps into more concise readable
and expressive sentence, I think the fundamental issue is that people
don't refactor, they don't tend to see patterns of commonality and
clean stuff up, or they just don't bother.
I just installed a new rails app, and my first feature was to allow
a user to signup.
this feature was not: "And I signup"
I have not figured out how that happens yet.
If I am thinking about the user experience I am thinking
of first loading the homepage and then clicking the "signup" link.
and waiting to see the next page.
I will extract these steps later when I want to re-use this.
What's wrong with this exactly?
On Oct 11, 2011, at 3:53 PM, Matt Wynne wrote:This might be just my "oh I can already fly" perspective, but I think it's much simpler than you imagine.Just open up the feature file and write down, exactly as you would explain it to your mum, what you want the system to do. Forget about buttons and forms and stuff, just describe the *behaviour* you want.Here's an example I wrote very recently:
--linoj
On 10/11/11 2:16 PM, Paul wrote:
> Personally, I'm at a point where I really, really want to incorporate
> Cucumber and I'm finding it fairly easy to create imperative scenarios
> and I tend to get stuck and work slower trying to get to declarative
> ones. I'm ready for the "Declarative Cucumber for Dummies" book. But
> until then, at least I'm getting something out of Cucumber.
Have you read the current (not quite on paper, but available in beta)
Cucumber Book? I found the advice on declarative style tests in that to
be quite good.
- George
--
----------------------------------------------------------------------
* George Dinwiddie * http://blog.gdinwiddie.com
Software Development http://www.idiacomputing.com
Consultant and Coach http://www.agilemaryland.org
----------------------------------------------------------------------
> On 10/11/11 2:16 PM, Paul wrote:
>> I tend to get stuck and work slower trying to get to declarative
>> ones.
Working slower is to be expected when you're using a declarative style---at first, anyway---but this is a good thing! Let me explain why.
When you use an imperative style, you don't need to think in terms of your domain language. You just think (and write) in terms of a generic domain language about clicking UI widgets. Trying to use a declarative style will not let you get away with that, and you'll have to actually come up with names for the things that you're doing that are meaningful in your domain. This isn't easy, but it's very valuable. Once you've established a common (or ubiquitous) language on your team for talking about your domain, you'll find conversations about your day-to-day activities on the project flow a lot more smoothly.
There is no book that can tell you what those words are---it's something you and your team will have to discover for themselves. That's why it's important to try to have a domain expert nearby or ideally pairing with you as you write these scenarios, so that you can thrash out your domain language as the questions come up. The more of your domain language you discover, the easier this gets, and pretty soon you'll find the declarative style actually allows you to move more quickly than the laborious imperative style.