Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Outline

Tests

This is PrestaShop automated tests folder.

Multiple type of tests are available:

  • UI folder contains user interface tests, see below

  • Unit folder contains unit tests, see below

  • Integration folder contains integration tests, see below

  • Resources contains different resources need for some tests (code snippets, dummy modules, dummy themes, example files)

  • TestCase contains some helper classes

This folder also contains a few scripts. They are used in our CI environment to trigger our different test campaigns.

e2e tests

PrestaShop end-to-end tests are powered by a tool suite as it requires:

  • to control a browser behavior
  • to mimic a user's behavior
  • to setup a test case and validate the behavior

This folder contains our pages objects and our test code, organized in campaigns.

We use Mocha, Playwright and Chai as our base stack.

How to write e2e tests

Please refer to our documentation.

Unit tests

PrestaShop unit tests are powered by phpunit.

How to write unit tests

  • One php class = one test file.
  • The test filepath must follow the class filepath/
  • Every dependency of the class must be replaced by test doubles*.

*If there is a hard-coded dependency such as a singleton pattern being used or a static call, this class cannot be unit tested and should be tested using integration tests.

Conventions

  • Use camelCase names for test function names.
  • Try to make method names explain the intent of the test case as best as possible. Don't hesitate to write long method names if necessary.
    • Bad example: testGetPrice (no idea what such a test is supposed to do)
    • Good example: testDiscountIsAppliedToFinalPrice

Integration tests

PrestaShop integration tests are powered by behat.

Morty Proxy This is a proxified and sanitized view of the page, visit original site.