This is a sample automated test suite for a to-do list web application built with AngularJS, which can be found at: http://todomvc.com/examples/angularjs/#/ The test cases are written in Python on a Windows 10 system using JetBrains PyCharm, following a BDD Cucumber format.
- Python 3.7
- behave
- selenium
- page-objects (used due to it providing easy bindings for page objects and locators)
- Chrome or Firefox with their respective driver paths added to the OS PATH variable
- Python 3.7 is used to ensure maximum compatibility.
- The project is using its own virtual environment to reduce bloat, with a requirements.txt generated by pip.
- The page-objects package was used to simplify Page Object generation
-
Scenario: Check Default interface
Given the app is open
Then The title is visible
And The new todo item field is visible
And The footer is visible
And A single list is visible
-
Scenario Outline: Add a new ToDo item
Given the app is open
When I input: <task> in the new todo item field
And Press the Enter Key
Then The <task> is created as a to-do item
And The remaining task counter increases
Task Examples: | Delete Facebook | | Lawyer Up | | Hit the Gym | | Stay in School | | Eat your Greens |
-
Scenario Outline: Mark an item as done
Given the app is open
When I mark the task: "<tasktocheck>" as done via its checkbox
Then The task: "<tasktocheck>" is marked as done
And The task: "<tasktocheck>" becomes grey and crossed-through
And The remaining task counter decreases
Examples: | Lawyer Up | | Hit the Gym |