Learn test-driven and behavior-driven development techniques that will help you build real-world React applications confidently in your software
Key Features
- Explore the TDD process, how it works, and why it will help you write maintainable React apps
- Develop a component testing framework from scratch to help you understand the mechanics of good unit testing
- Manage complexity by using unit tests and end-to-end acceptance tests to drive the design of your apps
Book Description
Test-driven development (TDD) is a programming workflow that helps you build your app by specifying its behavior as automated tests. The workflow is designed for future-proofing apps so that they can be modified easily without fear of breaking existing functionality. This workflow also has other benefits such as helping dev teams communicate their intentions by way of test specifications.
This book teaches you how to apply the workflow when building React apps, using Jest. You'll explore the creation of a sample app, using standard React libraries that professional React developers are likely to encounter when building apps, such as React Router, Redux, and Relay (GraphQL). The TDD workflow is supported by various testing techniques and patterns, which are useful even if you're not following the TDD process. This book covers these techniques by walking you through the creation of a component test framework. You'll understand the theory behind automated testing that will help you work with any of the test libraries that are in standard usage today, such as the React Testing Library. This second edition has been revised with a stronger focus on concise code examples and has been fully updated for React 18.
By the end of this TDD book, you'll be able to use React, Redux, and GraphQL to develop robust web apps.
What you will learn
- Build test-driven applications using React 18 and Jest
- Understand techniques and patterns for writing great automated tests
- Use test doubles and mocks effectively
- Test-drive browser APIs, including fetch and WebSockets
- Integrate with libraries such as React Router, Redux, and Relay (GraphQL)
- Use Cucumber.js and Puppeteer to build BDD-style acceptance tests for your applications
- Build and test async Redux code using redux-saga and expect-redux
Who This Book Is For
This TDD React book is for JavaScript developers who are looking to improve and learn testing practices and increase the quality and maintainability of their applications.
Table of Contents
- First Steps with Test-Driven Development
- Rendering Lists and Detail Views
- Refactoring the Test Suite
- Test-driving Data Input
- Adding complex form interactions
- Exploring Test Doubles
- Testing useEffect and Mocking Components
- Building an Application Component
- Test-driving Redux
- Filtering and Searching Data
- Building a Logo Interpreter
- Adding Animation
- Working with WebSockets
- Writing Your First Acceptance Test
- Adding Features Guided by Acceptance Tests
- Understanding TDD in the Wider Testing Landscape