Best Practices for Writing Acceptance Tests¶
Use prepared methods from
StrictWebDriver that are available via
We have prepared many useful methods like
fillFieldByName that actually do multiple actions to improve acceptance tests dependability.
These methods find the element on the page, scroll to it, move mouse over it and then do appropriate action.
They are intended to imitate human behaviour as much as possible.
Separate common behaviour to page objects¶
Use page object that extends from
AbstractPage for common actions.
For example: we do test login in several tests.
LoginPage its logic would be duplicated in several tests, and it would be much harder to maintain any changes.
Use test prefix for CSS classes¶
Test prefix helps to differentiate common CSS classes used by frontend developers from those used for tests, so they are not accidentally removed during design changes.
Use translations for testing text appearance¶
Texts on a frontend can be changed from time to time or language can be changed during development.
Such change would lead to many errors reported by acceptance tests.
We are preventing such errors by using prepared methods in
Use calculation of price by exchange rate for testing prices¶
Testing price is not common in acceptance tests, but it can be required from time to time.
By default, there are several tests checking right price displayed in popup window after products is added to cart.
As currency can be easily changed on a domain, we wanted to prevent error caused by such change.
AcceptanceTester includes two useful methods
getFormattedPriceWithCurrencySymbolRoundedByCurrencyOnFrontend for such cases.
CartBoxPage to get some inspiration.