$ command line cheat sheets
Cheat Sheet Title: [ no_spaces_alphanumeric_only ]
Cheat Sheet:INSTALL ======= INSTALL cucumber & webrat (rspec rspec-rails) ============================================= $ [sudo] gem install rspec rspec-rails cucumber webrat INSTALL DEPENDENCIES ==================== $ [sudo] gem install term-ansicolor treetop diff-lcs nokogiri BOOTSTRAP THE APP ================= script/generate cucumber HOW TO USE ========== RAILS ===== # Generate a basic feature and its step file, # its better to make your own! script/generate feature post # run your features rake features # run a specific feature rake features features/authentication.feature COMMAND LINE ============ # run a specific scenario (this scenario starts on # line 5 of authentication.feature) cucumber features/authentication.feature:5 SAMPLE FEATURE DEFINITION ========================= Feature: [feature name] In order to [goal] As a [stakeholder] I want [behavior] BUILT-IN WEBRAT STEPS ===================== Given I am on [page_name] When I go to [page_name] When I press "[button]" When I follow "[link]" When I follow "[link]" within "[parent]" When I fill in "[field]" with "[value]" When I fill in "[value]" for "[field]" When I fill in the following: | field | value | When I select "[value]" from "[field]" When I select "[time]" as the date and time When I select "[datetime]" as the "[datetime_label]" date and time When I select "[time]" as the time When I select "[time]" as the "[time_label]" time When I select "[date]" as the date When I select "[date]" as the "[date_label]" date When I check "[field]" When I uncheck "[field]" When I choose "[field]" When I attach the file at "[path]" to "[field]" Then I should see "[text]" Then I should see "[text]" within "[selector]" Then I should not see "[text]" Then I should not see "[text]" within "[selector]" Then the "[field]" field should contain "[value]" Then the "[field]" field should not contain "[value]" Then the "[label]" checkbox should be checked Then the "[label]" checkbox should not be checked Then I should be on [page_name] Then show me the page Developing with Cucumber and BDD ================================ Business value and MMF ====================== You should discuss the “In order to” part of the feature and pop the why stack max 5 times (ask why recursively) until you end up with one of the following business values: * Protect revenue * Increase revenue * Manage cost If you’re about to implement a feature that doesn’t support one of those values, chances are you’re about to implement a non-valuable feature. Consider tossing it altogether or pushing it down in your backlog. Focus on implementing the MMFs (Minimum Marketable Features) that will yield the most value. Outcomes and bottom-up scenarios ================================ The value provided by a system is what you can get out of it – not what you put into it (Chris Matts said that). Just like the value is expressed at the top of a feature (In order to…), the value should be in the steps of a scenarios too, more precisely in the Then steps. When you’re writing a new scenario, I recommend you start with the formulation of the desired outcome. Write the Then steps first. Then write the When step to discover the action/operation and finally write the Given steps that need to be in place in order for the When/Then to make sense. Read more about cucumber: * http://wiki.github.com/aslakhellesoy/cucumber * http://cukes.info/
Your cheat sheet will be editable (fixable) by anyone. Each cheat sheet is essentially a wiki page. It may also be used by millions of people for reference purposes from the comfort of their command line. If this is okay with you, please save.