Book Image

Learning Redux

By : Daniel Bugl
Book Image

Learning Redux

By: Daniel Bugl

Overview of this book

The book starts with a short introduction to the principles and the ecosystem of Redux, then moves on to show how to implement the basic elements of Redux and put them together. Afterward, you are going to learn how to integrate Redux with other frameworks, such as React and Angular. Along the way, you are going to develop a blog application. To practice developing growing applications with Redux, we are going to start from nothing and keep adding features to our application throughout the book. You are going to learn how to integrate and use Redux DevTools to debug applications, and access external APIs with Redux. You are also going to get acquainted with writing tests for all elements of a Redux application. Furthermore, we are going to cover important concepts in web development, such as routing, user authentication, and communication with a backend server After explaining how to use Redux and how powerful its ecosystem can be, the book teaches you how to make your own abstractions on top of Redux, such as higher-order reducers and middleware. By the end of the book, you are going to be able to develop and maintain Redux applications with ease. In addition to learning about Redux, you are going be familiar with its ecosystem, and learn a lot about JavaScript itself, including best practices and patterns.
Table of Contents (13 chapters)

Setting up Jest

First, we need to set up a testing engine to be able to run tests. In this book, we will use Jest (https://facebook.github.io/jest/). Jest, like React, is developed by the Facebook open source team. Perform the following steps to set up Jest:

  1. The first step is to install Jest via npm:
npm install --save-dev jest
  1. Since we want to use the new JavaScript syntax, we also need to install babel-jest and regenerator-runtime (which is required for babel-jest):
npm install --save-dev babel-jest regenerator-runtime
If you use npm 3 or 4, or Yarn, you do not need to explicitly install regenerator-runtime.
  1. Next, we create a __tests__ directory in the project root. This is where we will put our test files.
  2. Then, we create a __tests__/example.test.js file, with the following code:
test('example test', () =>
expect(1 + 1).toBe(2)
)
  1. Finally, we define a test...