Version 1 (modified by 11 years ago) ( diff ) | ,
---|
Writing testcases for EdenTest
Table of Contents
The F.I.R.S.T principle of Test Driven Development
- Fast: run (subset of) tests quickly (since you'll be running them all the time)
- Independent: no tests depend on others, so can run any subset in any order
- Repeatable: run N times, get same result (to help isolate bugs and enable automation)
- Self-checking: test can automatically detect if passed (no human checking of output)
- Timely: written before writing the code
EdenTest has been written using these principles. Whenever using EdenTest to create a new testcase, it is imperative to make sure that F.I.R.S.T mantra is followed.
How to write good testcases?
Before beginning to write a testcase, please go through the article How to write good testcases for Robot Framework?. It is a short and descriptive article that will help you a great deal to write precise and useful testcases.
Writing a testcase for EdenTest
Before writing your first testcase, please make sure that you have EdenTest set up, you understand the directory structure and the know-how of how to run EdenTest and see its results. If not, go through EdenTest.
Here is a description of how to write a testcase in EdenTest. Say for example, we want to test if a new staff member can be added or not. As the functionality is under hrm, open the testsuite file /tests/implementation/testsuites/hrm/human_resource.txt. If the functionality to be tested does not fall under any of the existing testsuites (eg hrm, projects etc), create a new folder/file under /tests/implementation/testsuites
What we have to do?
So, our testcase needs to do the following
- Go to eden/hrm/staff/create
- Select an organisation from dropdown list National Society / Branch.
- Input text into the person name field
- Input text into the person email field
- Submit the CRUD form
- Check for confirmation message
Adding variables
Before we write the testcase, we should assign variables to the link we are going to visit, ids we are going to use etc.
Inside the variables section of the testsuite file, indicated by *** Variables ***
add the variables as
variable name [delimited by two tabs/8 spaces] id/url/etc .
For ex:
${StaffCreateUrl} ${STAFF URL}/create #${STAFF URL} already exists ${HrmOrgSelector} hrm_human_resource_organisation_id #Selector for the dropdown list National Society / Branch. ${PersonNameField} hrm_human_resource_person_id_full_name #ID of Name field ${PersonEmailField} hrm_human_resource_person_id_email #ID of email field
Writing the test case
Add this to the *** Test Cases ***
section of the testsuite file.
Create Staff Go To ${StaffCreateUrl} Select From List By Label ${HrmOrgSelector} Indian Red Cross Society Input Text ${PersonNameField} Fname Lname Input Text ${PersonEmailField} flname@email.com Submit CRUD Form Should Show Confirmation
Note: Please make sure that the various arguments are separated by two spaces.
Compare the section What we have to do? and the testcase written above and marvel the beauty of Robot Framework. Run the testcase using the command
pybot tests/implementation/testsuites
Open report.html to see the outcome.
Go To
, Select From List By Label
, Input Text
, Submit CRUD Form
and Should Show Confirmation
are all keywords imported using main.txt in the *** Settings ***
section which in turn imports all the keyword files. If your use case requires a keyword that does not exist, create one under /tests/implementation/resources
To understand the selenium keywords visit Selenium2Library Keyword Documentation and the documentation of keywords implemented under EdenTest in tests/docs