Add e2e tests with cypress using `vue add e2e-cypress`. Vue CLI does not support creating typescript tests at this moment (vuejs/vue-cli#1350).
2.4 KiB
2.4 KiB
Tests
- There are two different types of tests executed:
- All tests
- 💡 You can use path/module alias
@/testsin import statements.
Unit tests
- Tests each component in isolation.
- Defined in
./tests/unit. - They follow same folder structure as
./src.
Naming
- Each test suite first describe the system under test.
- E.g. tests for class
Applicationis categorized underApplication.
- E.g. tests for class
- Tests for specific methods are categorized under method name (if applicable).
- E.g. test for
run()is categorized underrun.
- E.g. test for
Act, arrange, assert
- Tests use act, arrange and assert (AAA) pattern when applicable.
- Arrange
- Should set up the test case.
- Starts with comment line
// arrange.
- Act
- Should cover the main thing to be tested.
- Starts with comment line
// act.
- Assert
- Should elicit some sort of response.
- Starts with comment line
// assert.
Stubs
- Stubs are defined in
./tests/stubs. - They implement dummy behavior to be functional.
Integration tests
- Tests functionality of a component in combination with others (not isolated).
- Ensure dependencies to third parties work as expected.
- Defined in
./tests/integration.
E2E tests
- Test the functionality and performance of a running application.
- E2E tests are configured by vue plugin
e2e-cypressfor Vue CLI. - Names and folders are structured logically based on tests.
- The structure is following:
cypress.json: Cypress configuration file../tests/e2e/: Base Cypress folder./specs/: Test files, test are named with.spec.jsextension./plugins/index.js: Plugin file executed before project is loaded./support/index.js: Support file, runs before every single spec file.- (Ignored)
/videos: Asset folder for videos taken during tests. - (Ignored)
/screenshots: Asset folder for Screenshots taken during tests.