- Mastering React Test:Driven Development
- Daniel Irvine
- 278字
- 2021-06-24 14:45:07
Extracting a test helper
For more detailed instructions, see the To get the most out of this book section in the Preface.
In the first chapter, our test suites shared common code for constructing a DOM container element before each test. This element was used as the React root element. By doing this for each test, we avoided modifying global state. Let's extract that code so that we can re-use it across all of our test suites.
The shared code can be split into four parts:
- A common declaration of container in the describe block, accessible by all tests
- A beforeEach call to set container to a newly constructed container element
- A render function to insert DOM elements into the container
- Various expectations on the container to verify its content
At first glance, it might seem difficult to extract this logic since the container variable is manipulated in both a beforeEach block and each of our test functions. However, it's possible if we use a higher-order function that encapsulates its own state.
Create a new file test/domManipulators.js, and add the following content:
import ReactDOM from 'react-dom';
export const createContainer = () => {
const container = document.createElement('div');
return {
render: component => ReactDOM.render(component, container),
container
};
};
Calling domManipulators creates an empty DOM element, container, and then returns an object with two properties: render and container. We'll see how these can be used in the next section.
- Java EE框架整合開發入門到實戰:Spring+Spring MVC+MyBatis(微課版)
- Vue.js前端開發基礎與項目實戰
- Python測試開發入門與實踐
- Java開發入行真功夫
- Windows Forensics Cookbook
- Java應用開發技術實例教程
- Learning SciPy for Numerical and Scientific Computing(Second Edition)
- Mastering Unity 2D Game Development(Second Edition)
- Python語言實用教程
- CRYENGINE Game Development Blueprints
- 平面設計經典案例教程:CorelDRAW X6
- UML軟件建模
- UI設計基礎培訓教程(全彩版)
- 高性能PHP 7
- Java 11 and 12:New Features