Search⌘ K
AI Features

What is Cypress?

Explore Cypress as a front-end testing tool that runs in the browser, enabling automated end-to-end tests from the user's perspective. Understand its core features like assertions, spies, mocks, and how it optimizes testing for web apps including those with heavy JavaScript, improving your ability to write reliable tests effectively.

We'll cover the following...

Introduction to Cypress

Cypress is a front-end tool that tests anything that runs in a browser. QA engineers and developers use it to write automated tests, and it comes with a ton of functionality that makes our job of writing tests easier and more reliable. Cypress heavily optimizes end-to-end testing to solve many common problems of the other testing solutions. Moreover, it can test a website built in any language, even if it uses heavy JavaScript. It can also run on popular browsers like Chrome, Firefox, Edge, or Electron.

Cypress comes out of the box with functionality such as:

  • Assertions

  • Spies

  • Mocks

  • Stubs

Don’t worry if you don’t know what these are yet. We’ll cover Cypress in depth in this course. Another benefit of Cypress is that it runs in the browser, which allows us to hook ourselves into the internals.

End-to-end testing

End-to-end testing, also known as functional testing or user acceptance testing, is the method of testing our application from the end user’s perspective. When running a test with Cypress behind the scenes, Cypress opens a browser and goes to the URL we specify, just like we type an address in our browser navigation bar. End-to-end testing gets as close to real-world scenarios as possible. This way of testing accurately matches how real users use our application in production environments.

End-to-end testing flow
End-to-end testing flow

Generally, people consider testing one of the least glamorous parts of software engineering. The goal of this course is to change that perception by equipping you with an excellent real-world web application testing skillset and an increased appreciation for the craft of software engineering.