Using Cucumber with Expertiza: Difference between revisions
No edit summary |
|||
Line 20: | Line 20: | ||
<blockquote> | <blockquote> | ||
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 | And a Student named "impersonated_account" created by "cucumber" exists | ||
When I log in as "cucumber" | When I log in as "cucumber" | ||
And I click the menu link "Impersonate User" | And I click the menu link "Impersonate User" | ||
And I fill in "user_name" with "impersonated_account" | And I fill in "user_name" with "impersonated_account" | ||
When I press "Impersonate" | When I press "Impersonate" | ||
Then I should be logged in as "impersonated_account" | Then I should be logged in as "impersonated_account" | ||
</blockquote> | </blockquote> | ||
<blockquote> | |||
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" | When I log in as "cucumber" | ||
And I click the menu link "Impersonate User" | And I click the menu link "Impersonate User" | ||
And I fill in "user_name" with "impersonated_account" | And I fill in "user_name" with "impersonated_account" | ||
When I press "Impersonate" | When I press "Impersonate" | ||
Then I should see "No user exists with the name 'impersonated_account'" | Then I should see "No user exists with the name 'impersonated_account'" | ||
</blockquote> | </blockquote> |
Revision as of 19:21, 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