Chapter 24. Integration Testing
One of the best things you can do for the long-term maintainability of your apps is to write integration tests. When I discussed backend and frontend testing in Chapters 7 and 21, I mentioned how we would go into greater details on these tests. E2e tests are a great way to ensure that the changes you make don’t break the full stack functionality. This is incredibly helpful when you do things like upgrade packages and make changes to global components so that you can catch unintended side effects. That saves QA time on regression testing, and it helps prevent bugs in unexpected places from getting to users.
These tests also help document how features should work as the app grows. If you change something, such as what happens when a button gets clicked, these tests are more robust than unit tests. E2e tests can be used to perform actions like a user so that you get the real flow consistently. That’s the biggest difference between unit tests and e2e tests and why they give you more assurance that functionality hasn’t changed.
The e2e tools that I’ll talk about in this chapter are generally stack agnostic, so they aren’t limited to just React projects. I’ll go over writing the same tests using three of these packages so that you can compare how they work:
-
Cypress
-
Nightwatch
-
Playwright
E2e tests typically take more time to write than unit tests, so while they offer more thorough flow testing, they are more expensive to develop and maintain. To ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access