Using Cucumber with Expertiza: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 10: Line 10:
A feature is written in an explanatory syntax called Gherkin. For the Impersonate User feature, a feature would be described as.</p>
A feature is written in an explanatory syntax called Gherkin. For the Impersonate User feature, a feature would be described as.</p>


<code>Feature: Impersonate User<br>
<code>
As an Administrator<br>
Feature: Impersonate User<br>
I should be able to impersonate users<br>
    As an Administrator<br>
    I should be able to impersonate users<br>
</code>
</code>


===Scenarios===
===Scenarios===
<p>Each feature file can contain multiple scenarios. This is to test the same feature in different ways. For example. An administrator should be able to impersonate an existing student, but he should not be able to impersonate a student that doesn't exist. In the case of an instructor, he should only be able to impersonate students that are in his class.</p>
<p>Each feature file can contain multiple scenarios. This is to test the same feature in different ways. For example. An administrator should be able to impersonate an existing student, but he should not be able to impersonate a student that doesn't exist. In the case of an instructor, he should only be able to impersonate students that are in his class.</p>
 
<code>
Scenario: Impersonate a student as an Administrator
Scenario: Impersonate a student as an Administrator
 
    Given an Administrator named "cucumber" exists
Given an Administrator named "cucumber" exists
    And a Student named "impersonated_account" created by "cucumber" exists
 
    When I log in as "cucumber"
And a Student named "impersonated_account" created by "cucumber" exists
    And I click the menu link "Impersonate User"
 
    And I fill in "user_name" with "impersonated_account"
When I log in as "cucumber"
    When I press "Impersonate"
 
    Then I should be logged in as "impersonated_account"
And I click the menu link "Impersonate User"
</code>
 
<code>
And I fill in "user_name" with "impersonated_account"
 
When I press "Impersonate"
 
Then I should be logged in as "impersonated_account"
<br>
Scenario: Impersonate a student that does not exist
Scenario: Impersonate a student that does not exist
 
    Given an Administrator named "cucumber" exists
Given an Administrator named "cucumber" exists
    When I log in as "cucumber"
 
    And I click the menu link "Impersonate User"
When I log in as "cucumber"
    And I fill in "user_name" with "impersonated_account"
 
    When I press "Impersonate"
And I click the menu link "Impersonate User"
    Then I should see "No user exists with the name 'impersonated_account'"
 
</code>
And I fill in "user_name" with "impersonated_account"
 
When I press "Impersonate"
 
Then I should see "No user exists with the name 'impersonated_account'"
<br>
<p>Gherkin provides multiple keywords to describe steps in a scenario such as:</p>
<p>Gherkin provides multiple keywords to describe steps in a scenario such as:</p>
* Feature  
* Feature  

Revision as of 19:29, 8 February 2013

Cucumber Stack

Features

Features provide a brief description about the functionality being tested.

In Expertiza, features are stored in /features. Within this folder you can find several sub-folders such as /admin, /instructor, and /student. This structure is to organize tests that apply to specific roles.

Each .feature file tests a specific aspect of the system, such as an Administrator's ability to Impersonate a User. (/features/admin/impersonate_user.feature) A feature is written in an explanatory syntax called Gherkin. For the Impersonate User feature, a feature would be described as.

Feature: Impersonate User

    As an Administrator
I should be able to impersonate users

Scenarios

Each feature file can contain multiple scenarios. This is to test the same feature in different ways. For example. An administrator should be able to impersonate an existing student, but he should not be able to impersonate a student that doesn't exist. In the case of an instructor, he should only be able to impersonate students that are in his class.

Scenario: Impersonate a student as an Administrator

    Given an Administrator named "cucumber" exists
    And a Student named "impersonated_account" created by "cucumber" exists
    When I log in as "cucumber"
    And I click the menu link "Impersonate User"
    And I fill in "user_name" with "impersonated_account"
    When I press "Impersonate"
    Then I should be logged in as "impersonated_account"	

Scenario: Impersonate a student that does not exist

    Given an Administrator named "cucumber" exists
    When I log in as "cucumber"
    And I click the menu link "Impersonate User"
    And I fill in "user_name" with "impersonated_account"
    When I press "Impersonate"
    Then I should see "No user exists with the name 'impersonated_account'"

Gherkin provides multiple keywords to describe steps in a scenario such as:

  • Feature
  • Background
  • Scenario
  • Given
  • When
  • Then
  • And
  • But
  • Scenario Outline
  • Examples

Step Definitions

Running Cucumber