Pulling out reusable rendering logic
In this section, we will extract a module that initializes a unique DOM container element for each test. Then, we’ll build a render function that uses this container element.
The two test suites we’ve built both have the same beforeEach
block that runs before each test:
let container; beforeEach(() => { container = document.createElement("div"); document.body.replaceChildren(container); });
Wouldn’t it be great if we could somehow tell Jest that any test suite that is testing a React component should always use this beforeEach
block and make the container
variable available to our tests?
Here, we will extract a new module that exports two things: the container
variable and the initializeReactContainer
function. This won’t save us any typing, but it will hide the pesky let
declaration and give a descriptive name to the call to createElement
.
The importance of small functions...