Number of posts: 25

Shrink the Untestable Code With App Actions And Effects

This blog post shows how to shrink untestable code and pushes it to the edges of the applications. The core of the web application will remain easy to check from our tests, while external effects can be observed or stubbed.The Cypress.io test runner has limitations. For example, when controlling the…

Read More

Modern Front-End Testing with Cypress

This is a guest post from Michael Herman, a software engineer and educator who lives in the Denver area. He is the founder of TestDriven.io. Besides development, he enjoys building financial models, tech writing, hiking, and teaching.Cypress is a modern web automation test framework designed to simp…

Read More

When Can the Test Click?

Recently a user opened a Cypress issue #3135 asking why the cy.click() command was behaving differently than the way click behaved when a user clicks on the button. We’ve seen many people ask similar questions involving click and wanted to address how to ensure your tests behave the same way as a us…

Read More

Stop using Page Objects and Start using App Actions

Writing maintainable end-to-end tests is challenging. Often testers create another layer of indirection on top of the web page called page objects to execute common actions. In this post I argue that page objects are a bad practice, and suggest dispatching actions directly to the application’s inter…

Read More

Element Coverage

Our users are periodically asking us to instrument application code and save code coverage information after Cypress runs end-to-end tests. In this blog I will argue that code coverage is less than useful for end-to-end tests. Then I will show element coverage that might be a better metric.…

Read More

Testing Redux Store

Cypress tests usually operate via public browser APIs like DOM, network, or storage. But the tests can just as easily reach into the application and check if the internal state is updated correctly. In this blog post I will show you how to run assertions against a React application that uses a Redux…

Read More