Mastering React Test-Driven Development : Build Rock-Solid, Well-tested Web Apps with React, Redux and GraphQL.
This book is comprehensive walk through of Test-Driven Development (TDD) for React. It takes a first-principles approach to teach the TDD process using vanilla Jest. Readers build their own test library as they refactor out repeated code in tandem with building a real-world application. It also cove...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt Publishing, Limited,
2019.
|
Temas: | |
Acceso en línea: | Texto completo |
Tabla de Contenidos:
- Cover; Title Page; Copyright and Credits; Dedication; About Packt; Contributors; Table of Contents; Preface; Section 1: First Principles of TDD; Chapter 1: First Steps with Test-Driven Development; Technical requirements; Creating a new React project from scratch; Installing NPM; Creating a new Jest project; Commit early and often; Bringing in React and Babel; Displaying data with your first test; Writing a failing test; Writing your first expectation; Rendering React from a test; Make it pass; Backtracking on ourselves; Refactoring your work; Promoting variables; Using a beforeEach block
- Extracting methodsWriting great tests; Red, green, refactor; Streamlining your testing process; Rendering lists and detail views; Rendering the list of appointments; Specifying list items; Selecting data to view; Initial selection of data; Adding events to a functional component; Manually testing our changes; Adding an entrypoint; Putting it all together with Webpack; Before you check in ... ; Summary; Exercises; Further learning; Chapter 2: Test-driving Data Input with React; Extracting a test helper; Adding a form element; Extracting a form-finder method; Accepting text input
- Extracting an expectation group functionPassing in an existing value; Extracting out a field-finder function; Labeling the field; Checking for null or not; Saving the customer information; Submitting a form with data; Using state instead of props; Duplicating fields; Nesting describe blocks; Generating parameterized tests; Solving a batch of tests; Modifying handleChange to work with multiple fields; Finishing off the form with a submit button; Selecting from a dropdown; Providing options to a dropdown; Utilizing defaultProps to specify real data; Pre-selecting a value
- Completing the remaining tests for the select boxMaking a choice from radio buttons; Constructing a calendar view; Displaying radio buttons for available appointments; Hiding input controls; Finishing it off; Manually testing your solution; Summary; Exercises; Further learning; Chapter 3: Exploring Test Doubles; What is a test double?; Learning to avoid fakes; Submitting forms using spies; Untangling Arrange-Act-Assert; Watching it fail; Making spies reusable; Using a Jest matcher to simplify expectations; Stubbing the fetch API; Replacing global variables with spies
- Installing the window.fetch polyfillActing on return values with stubs; Acting on the fetch response; Displaying errors to the user; Extracting test helpers; Using Jest to spy and stub; Extracting spy helpers; Using jest.spyOn to spy on module mocks; Drying up DOM queries; Extracting container.querySelectorAll; Drying up DOM events; Summary; Exercises; Further learning; Chapter 4: Creating a User Interface; Fetching data on load with useEffect; Stubbing exported constants; Using props within useEffect; Passing customer data through to AppointmentForm