Book Image

End-to-End Web Testing with Cypress

By : Waweru Mwaura
1 (1)
Book Image

End-to-End Web Testing with Cypress

1 (1)
By: Waweru Mwaura

Overview of this book

Cypress is a modern test automation framework for web-based frontend apps. Learning Cypress will help you overcome the shortcomings of conventional testing solutions such as dependency graph problems, the steep learning curve in setting up end-to-end testing packages, and difficulties in writing explicit time waits for your tests. In End-to-End Web Testing with Cypress, you’ll learn how to use different Cypress tools, including time travel, snapshots, errors, and console output, to write fail-safe and non-flaky tests. You’ll discover techniques for performing test-driven development (TDD) with Cypress and write cross-browser tests for your web applications. As you advance, you’ll implement tests for a sample application and work with a variety of tools and features within the Cypress ecosystem. Finally, this Cypress book will help you grasp advanced testing concepts such as visual testing and networking. By the end of this book, you’ll have the skills you need to be able to set up Cypress for any web app and understand how to use it to its full potential.
Table of Contents (17 chapters)
1
Section 1: Cypress as an End-to-End Testing Solution for Frontend Applications
7
Section 2: Automated Tests with the TDD Approach
12
Section 3: Automated Testing for Your Web Application

Understanding time travel on executed tests

Time travel, just like in sci-fi movies but now in the context of tests, is the ability to move back to a state that a test was in while being executed. As Cypress tests execute, they create DOM snapshots that we can use to travel back in time and check the state of our tests at different times and when different actions took place. With time travel, it is possible to check whether an expected action takes place and how it took place. Time travel also allows us to investigate and audit what actions were taken when the test was running and why errors occurred.

To investigate time travel in Cypress tests, we will navigate to our chapter-05 folder in this book's GitHub repository and create a new test in the debugging.spec.js file, which we created previously. The following code block is a test that will mark added todo items as completed. With time travel, we can identify the different states of the application as we add todo items...