Author: Jonathan Freeman

JavaScript promises: 3 gotchas and tricks to avoid them

Now that we’ve covered some of the basic concepts and implementation of promises, let’s take a look at three promises gotchas that I’ve seen trip up developers as well as some tricks that might be useful.
Gotcha #1: Promise handlers return promises
If …

How JavaScript promises work

Last week we looked at callbacks and promises. I made a case for using promises to easily coordinate asynchronous code. This week, we’ll dig further into understanding promises and look at the syntax.
Imagine you have a box. You don’t know if there’s a…

Warehouse Discounts

The best JavaScript testing tools for React

Several years into widespread JavaScript fatigue, the front-end ecosystem isn’t getting any smaller or simpler. The world of front-end testing is also expanding, and the tools tend to be opinionated from framework to framework. This is sort of a double-edged sword. One the one hand, picking a framework narrows the testing options we have to choose from. On the other hand, testing stacks are less portable across frameworks, so we may have to learn a whole new set of tools with each new project.

In general, there are three structural layers to testing in JavaScript: test runners, test frameworks, and assertion libraries. Every testing setup requires each layer, although sometimes these layers will be consolidated into a single tool. For example, Jasmine is both an assertion library and a test framework. Beyond having to cover each of these structural components, you will typically add other useful tools to your testing stack, such as mocking libraries and code coverage tools. Below, I’ll lay out the most common tools used in React testing and how to go about choosing which ones are right for you.

Apps & Games Clothing Electronics & Photo Large Appliances
Baby Womens Apparel Garden Lighting
Beauty Mens Apparel Outdoors Luggage
Books Girls Apparel Health & Personal Care Pet Supplies
Car Boys Apparel Home Shoes & Bags
Motorbike Computers & Accessories Kitchen Equipment Sports & Outdoors
Fashion DIY & Tools Jewellery Toys & Games