[rspec-users] Reorganize documentation for Cucumber at Github

Tom Cloyd tomcloyd at comcast.net
Sat Jan 17 21:57:38 EST 2009

aslak hellesoy wrote:
> Ok, I'll give a stab at what a 5 minute introduction might contain. 
> Please comment.
> 1) Who should use Cucumber, and what benefits can you get from it?
> 2) How Cucumber works (high level explanation without getting too 
> technical).
> 3) Learn the nomenclature - features, scenarios, steps (step 
> definitions later). Some style guidlines.
> 4) What does a Cucumber feature look like (plain - no outlines or 
> tables). Learn how to write one in a simple text editor.
> 5) How to install and run Cucumber (using the one from 3 as example. 
> No Rake yet - just the cucumber command)
> 6) What does the output from Cucumber mean? (Learn to read the 
> deafault console output. Colours and error messages. Mention other 
> formatters)
I just thought of a possible addition. Might go here, or possibly earlier.

"Starting points" - how to implement Cucumber, starting from where you 
are now with your coding project.

1. Group One: Haven't started yet; just getting organized. How to use 
this tool to Do It Right.
2. Group Two: HAVE started, and some thing are already working, but have 
no testing in place, and significant coding to launch. What to do to 
bring in cucumber most efficiently.
3. Group Three: Have working code. Want to bring in testing. It is it 
too late to use Cucumber? If not, how do I do it?

What's needed isn't so much detailed instructions as is a priority list, 
and a clear starting point. Details can be worked out using the 
discussion list, I imagine. A top-down approach. For amateurs like me, 
it's hard for me to do top-down, when I know so little.

For example: I'm in Group Two, with my most important project, and I'm 
my own customer, as it were. What I'm doing (tonight, in fact), is 
simulating a fresh start, starting with a few simple classes, which I 
haven't written yet (because I don't write classes - I'm totally 
procedural, but that's changing immediately), working to move ahead 
quickly by adapting existing code to the new framework, as it were. But, 
of course, I'm not at all sure I'm going about it right. I'll fumble 
through, until things get clearer, but a little recipe of sorts would be 
very helpful, and I don't have one.

I hope this helps!

> 7) Learn to write step definitions (they are similar to defining 
> methods in most imperative languages like Ruby, Java, C, Pascal....). 
> Mention Regexps, Rubular.com.
> 8) How to implement the body of a step definition. Learn about RSpec's 
> #should and #should_not - and matchers
> 9) How to fix a failing (red) step definition by writing some code (in 
> lib for now since we're not doing any Rails)
> 10) Mention DTSTTCPW and refactoring - with some external links. TDD 
> basics.
> 11) Learn how to use Rake (useful when you have more than one feature 
> file). Mention RCov.
> 12) Learn about the various command-line switches
> 13) Learn about more advanced Gherkin (Cucumber language) features 
> such as Tables, PyString, Scenario Outlines and Background (coming soon)
> 14) Learn about hooks (Before, After etc)
> 15) Various other features (CUCUMBER_COLORS, AutoTest, cucumber.yml 
> (profiles)
> 16) IDE support
> 17) How to use other assertion tools like Test::Unit, Shoulda, etc.
> 18) How to use Cukes with non-Ruby platforms (Watir family, JRuby, 
> IronRuby, FunFX/Flex)
> The reader will gradually learn about the recommended file layout 
> structure.
> Maybe this is more like a 10-15 minute intro. I'll try to keep it as 
> short as possible without skipping important concepts.
> What's missing? What's in the wrong order? What should I remove?
> Aslak
>     Aslak
>         I'm working on this thing right now, and maybe it'll be far
>         enough along for some kind of review this weekend. Or...I
>         could put it up, say on a Google Sites wiki, and several of us
>         could work on it. Any thoughts? I actually prefer to work in a
>         group, but have already started on my own.
>         Yeah, I like that idea - a temporary Google Sites wiki.
>         Tom
>         -- 
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
>         Bellingham, Washington, U.S.A: (360) 920-1226
>         << tc at tomcloyd.com <mailto:tc at tomcloyd.com> >> (email)
>         << TomCloyd.com >> (website) << sleightmind.wordpress.com
>         <http://sleightmind.wordpress.com> >> (mental health weblog)
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>         _______________________________________________
>         rspec-users mailing list
>         rspec-users at rubyforge.org <mailto:rspec-users at rubyforge.org>
>         http://rubyforge.org/mailman/listinfo/rspec-users
>     -- 
>     Aslak (::)
> -- 
> Aslak (::)
> ------------------------------------------------------------------------
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users


Tom Cloyd, MS MA, LMHC - Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< tc at tomcloyd.com >> (email)
<< TomCloyd.com >> (website) 
<< sleightmind.wordpress.com >> (mental health weblog)

More information about the rspec-users mailing list