Skip to content

andyw8/cucumber_scaffold

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Installation

$ gem install cucumber_scaffold

Usage

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

Notes

  • 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

Contributors

zuf[https://github.com/zuf]

Sample Output

# 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

About

Cucumber Scaffold

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages