This workshop teaches how to test a modern web application using Cypress.io end-to-end test runner. The application uses Vue.js framework with Vuex data management and REST API calls, but the testing will be applicable to any modern web app. Knowledge of web development using JavaScript is required, plus some basic Node.js skills.
Before coming to the workshop, please clone the repository https://github.com/cypress-io/testing-workshop-cypress and run `npm install` command to install required dependencies. See README.md in the repository for minimum system requirements.
## Part 1 – the basics
* How to install and run Cypress
* How Cypress scaffolds files
* Writing and running a basic test
* Setting up video recording and screenshots on failure
* Selector Playground
* Testing XHR requests
* Using data fixtures in your tests
## Part 2 – core concepts
* Configuring Cypress via CLI, env, config files
* Retry-ability and custom assertions
* Writing custom commands
* Using custom Webpack or Browserify preprocessor
* Page Objects vs App Actions
* Testing individual Vue / React / X components
* Accessing OS via `cy.task`
* When not to use Cypress
## Part 3 – testing strategy
* Using custom test reporters
* Running Cypress tests on CI
* Recording Cypress tests on dashboard
* Testing in parallel
* Setting up data before the test
* Cypress module API
* Unit tests vs E2E tests