
Discover Cypress, a modern JavaScript testing framework, and learn to design end-to-end tests that validate frontend and backend integration, API calls, and real user workflows, with options to mock responses.
Download and set up the Cypress Mastery Real World app, configure the backend for PostgreSQL, clone the repo, create dot env, and seed the database with test data.
Install Cyprus as a dev dependency, open with npx Cyprus open, and begin end-to-end testing in Chrome, creating a simple auth spec under e2e.
Learn to structure Cypress test suites with describe and nested describes or context, organize authorization tests for register and login, and accelerate work with Cypress Runner and VSCode snippets.
Explore the arrange, act, and assert pattern to structure Cypress tests, setting up preconditions, simulating user actions, and validating outcomes such as redirecting to the homepage after registration.
Configure VS Code for Cyprus code completion by adding a js config.json in the project root, enabling in-editor command hints and parameter details in spec files.
Arrange the test by visiting the register page and applying a global base URL in Cypress config, enabling easy environment switching and reducing initial flashing and startup time.
Discover three element selector methods in Cypress—by class, by id, and by data test id attribute—using DevTools and the get command to map HTML and improve robustness.
Practice selecting username, email, and password inputs and the sign up button for an authorization spec, following best practices from the previous lesson.
Learn to locate form inputs with data test id attributes on the register page using DevTools, and verify username, password, and sign up button selectors with Cypress logs.
Perform actions on Cypress elements by typing username, email, and password and clicking to submit, while observing app state and using assertions instead of hard waits for elements.
Generate dynamic test data for Cypress tests with faker, creating usernames and emails to stabilize the register test; install and import faker, then run tests to verify success.
Add two assertions in Cypress to confirm redirect to the home page and that the registered user is logged in by checking the header username via its data test id.
Create and integrate a custom command getByTestId to streamline selecting elements by data tested attribute, organize commands, enable code completion with TypeScript definitions, and ensure Cypress commands load via CI.
Learn to control Cypress test execution with .only() and .skip(), ensuring tests run independently. Improve workflow with the Cypress helper plugin for shortcuts, autocompletions, and VSCode integration.
Learn to write your first Cypress tests by validating unauthenticated access redirects to the home page and asserting error messages with a data test id.
Explore hooks in Cypress, including before, before each, after, and after all, learning to seed data, send API requests, clear data, and manage test state with describe and context blocks.
In my conversations with people who were thinking about test automation careers, several questions kept coming back quite frequently, such as:
I am wondering if test automation is something for me,
I am looking for a course with more focus on real-life examples,
I do not have so much time. I need something short and condensed instead of multi-hour waffling on a single example.
I have created this course with the hope that it will answer those needs.
Your first test in Cypress
You will start your journey by discovering the fundamental building blocks of Cypress tests. From the very beginning, together we will write your first E2E test. Where I take it apart and explain each of the parts in detail, such as:
Test suite & Test structure
Visiting page
Selecting elements using browser dev tools
Performing actions on selected elements
Assertions
However, that's not all.
You will also learn how you can improve your tests to follow best practices.
You will learn how to create custom commands, which will make your tests more readable. How to dynamically generate test data for your tests and VS code extensions that will make your work more effective.
I look forward to seeing you in the course :)