$ gem install cucumber_scaffold
Install the support files (you should also do this when updating the gem):
$ rails generate cucumber_scaffold:install
Run the built-in Rails scaffold generator:
$ rails generate scaffold Post name:string body:text rating:integer published:boolean
Then run the cucumber_scaffold generator with the same parameters:
$ rails generate cucumber_scaffold:feature Post name:string body:text rating:integer published:boolean
-
By default the generated features are targeted at the Rails scaffold generator
-
Only tested with Rails 3 and Capybara (not webrat)
-
Only supports string, text, integer, decimal and boolean fields at present
-
References (belongs_to) are partly supported
zuf[https://github.com/zuf]
# Generated by cucumber_scaffold - http://github.com/andyw8/cucumber_scaffold Feature: Manage posts In order to [goal] [stakeholder] wants [behaviour] Scenario: List all posts Given the following posts: | name | body | rating | published | | name 1 | body 1 | 11 | true | | name 2 | body 2 | 12 | true | | name 3 | body 3 | 13 | true | When I go to the posts page Then I should see the following posts: | Name | Body | Rating | Published | | name 1 | body 1 | 11 | true | | name 2 | body 2 | 12 | true | | name 3 | body 3 | 13 | true | And the heading should be "Listing posts" Scenario: View a post Given the following posts: | name | body | rating | published | | name 1 | body 1 | 11 | true | | name 2 | body 2 | 12 | true | | name 3 | body 3 | 13 | true | When I go to the posts page And I click "Show" in the 2nd row Then I should see the following post: | Name: | name 2 | | Body: | body 2 | | Rating: | 12 | | Published: | true | When I follow "Back" Then I should be on the posts page Scenario: Edit a post Given the following post: | name | name 10 | | body | body 10 | | rating | 20 | | published | true | When I go to the page for that post And I follow "Edit" Then I should see the following form field values: | Name | name 10 | | Body | body 10 | | Rating | 20 | | Published | [x] | Then the heading should be "Editing post" When I follow "Show" Then I should be on the page for that post Scenario: Delete a post via the index page Given the following posts: | name | body | rating | published | | name 1 | body 1 | 11 | true | | name 2 | body 2 | 12 | true | | name 3 | body 3 | 13 | true | When I go to the posts page And I click "Destroy" in the 2nd row Then I should see the following posts: | Name | Body | Rating | Published | | name 1 | body 1 | 11 | true | | name 3 | body 3 | 13 | true | And I should be on the posts page Scenario: New post page Given I am on the posts page When I follow "New Post" Then I should be on the new post page When I follow "Back" Then I should be on the posts page Scenario: Create a new post Pending # Given I am on the new post page # When I fill in the form with: # | Name | name 10 | # | Body | body 10 | # | Rating | 20 | # | Published | [x] | # And I press "Create" # Then I should see "Post was successfully created." # And I should see the following post: # | Name: | name 10 | # | Body: | body 10 | # | Rating: | 20 | # | Published: | true | Scenario: Attempt to create a new post with invalid input Pending # You should use this scenario as the basis for scenarios involving ActiveRecord validations, or delete it if it's not required # Given I am on the new post page # When I fill in the form with: # | Name | name 10 | # | Body | body 10 | # | Rating | 20 | # | Published | [x] | # And I press "Create" # Then I should see "1 error prohibited this post from being saved:" # # [You should add checks for specific errors here. It may be appropriate to add extra scenarios.] # # And I should see the following form field values: # | Name | name 10 | # | Body | body 10 | # | Rating | 20 | # | Published | [x] | Scenario: Attempt to update a post with invalid input Pending # You should use this scenario as the basis for scenarios involving ActiveRecord validations, or delete it if it's not required # Given a post exists # When I go to the edit page for that post # And I fill in the form with: # | Name | name 10 | # | Body | body 10 | # | Rating | 20 | # | Published | [x] | # And I press "Update" # Then I should see "1 error prohibited this post from being saved:" # # [You should add checks for specific errors here. It may be appropriate to add extra scenarios.] # # And I should see the following form field values: # | Name | name 10 | # | Body | body 10 | # | Rating | 20 | # | Published | [x] | Scenario: Update a post Given the following post: | name | name 10 | | body | body 10 | | rating | 20 | | published | true | When I go to the edit page for that post And I fill in the form with: | Name | name 10 updated | | Body | body 10 updated | | Rating | -20 | | Published | [ ] | And I press "Update" Then I should be on the page for that post And I should see "Post was successfully updated." And I should see the following post: | Name: | name 10 updated | | Body: | body 10 updated | | Rating: | -20 | | Published: | false | Scenario: Navigate from posts page to the edit post page Given the following posts: | name | body | rating | published | | name 1 | body 1 | 11 | true | | name 2 | body 2 | 12 | true | | name 3 | body 3 | 13 | true | When I go to the posts page And I click "Edit" in the 2nd row Then I should be on the edit page for the 2nd post Scenario: Navigate from edit post page to the posts page Given a post exists When I go to the edit page for that post And I follow "Back" Then I should be on the posts page