CSC/ECE 517 Fall 2012/ch1 1w3 pl: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 21: Line 21:
Acceptance Test Drive Planning is practice that stresses on the importance of the identifying  the functions and requirements of the software beforehand so that we exactly get to know when our development phase is over. This practice results in fewer bugs , shorter delivery times and great customer satisfaction.
Acceptance Test Drive Planning is practice that stresses on the importance of the identifying  the functions and requirements of the software beforehand so that we exactly get to know when our development phase is over. This practice results in fewer bugs , shorter delivery times and great customer satisfaction.


===Cucumber acceptance test===
===Cucumber Acceptance Test===


       Feature: Sign up
       Feature: Sign up
       Sign up should be quick and friendly.
       Sign up should be quick and friendly.


Scenario: Successful sign up
      Scenario: Successful sign up
New users should get a confirmation email and be greeted personally by the site once signed in.
      New users should get a confirmation email and be greeted personally by the site once signed in.


Given I have chosen to sign up
      Given I have chosen to sign up
When I sign up with valid details
      When I sign up with valid details
Then I should receive a confirmation email
      Then I should receive a confirmation email
And I should see a personalized greeting message
      And I should see a personalized greeting message


Scenario: Duplicate email
      Scenario: Duplicate email
Where someone tries to create an account for an email address that already exists.
      Where someone tries to create an account for an email address that already exists.


Given I have chosen to sign up
      Given I have chosen to sign up
But I enter an email address that has already registered
      But I enter an email address that has already registered
Then I should be told that the email is already registered
      Then I should be told that the email is already registered
And I should be offered the option to recover my password
      And I should be offered the option to recover my password




Acceptance tests written in this style are more than just tests; they are executable specifications. As of January 2012, Cucumber was the second most popular testing framework after RSpec for Ruby
Acceptance tests written in this style are more than just tests; they are executable specifications. As of January 2012, Cucumber was the second most popular testing framework after RSpec for Ruby

Revision as of 22:19, 13 September 2012

Unit-Testing Frameworks for Ruby: Cucumber

This wiki-page serves as a knowledge source for understanding Unit-Testing Frameworks available for Ruby particularly Cucumber .

Introduction

Unit testing is a software development process for testing individual units of source code independently for proper operation [1]. An unit testing framework helps the process of unit testing by automating the test cases which are written to ensure the correctness of the system . Ruby provides a framework in its standard library for setting up, organizing, and running tests called Test::Unit [2]. Other testing framework available for ruby are Shoulda, RSpec, Cucumber.

Cucumber

Cucumber is one of the latest unit test frameworks to have come for Ruby as part of the RSpec family of tools. Cucumber is written in the Ruby programming language and adheres to behaviour driven development(BDD). Behaviour Driven Development is an Agile Development process that comprises aspects of Acceptance Test Driven Planning , Domain Driven Design and Test Driven Development (TDD). Cucumber is designed specifically to ensure the acceptance tests can easily be read and written by anyone.

Behaviour Driven Development(BDD)

BDD preserves the basic iterative (fail-pass) workflow of TDD, but stresses on specifying behaviors that are understandable to people (say from non programming background). In this approach we write tests in a natural language such that even a non programmer can understand.


Acceptance Test

Acceptance Test Drive Planning is practice that stresses on the importance of the identifying the functions and requirements of the software beforehand so that we exactly get to know when our development phase is over. This practice results in fewer bugs , shorter delivery times and great customer satisfaction.

Cucumber Acceptance Test

     Feature: Sign up
     Sign up should be quick and friendly.
     Scenario: Successful sign up
     New users should get a confirmation email and be greeted personally by the site once signed in.
     Given I have chosen to sign up
     When I sign up with valid details
     Then I should receive a confirmation email
     And I should see a personalized greeting message
     Scenario: Duplicate email
     Where someone tries to create an account for an email address that already exists.
     Given I have chosen to sign up
     But I enter an email address that has already registered
     Then I should be told that the email is already registered
     And I should be offered the option to recover my password


Acceptance tests written in this style are more than just tests; they are executable specifications. As of January 2012, Cucumber was the second most popular testing framework after RSpec for Ruby