Wil*_*low 8 javascript unit-testing reactjs jestjs react-strictmode
第一次发帖提问:)
我有一个React应用程序:
// index.js
ReactDOM.render(
<React.StrictMode>
<Router>
<App />
</Router>
</React.StrictMode>,
document.getElementById('root'),
);
Run Code Online (Sandbox Code Playgroud)
我有 24 个jest测试套件,到目前为止,基本上是这样的:
act(() => {
render(
<Router>
<SomeComponentIWantToTest />
</Router>
);
});
Run Code Online (Sandbox Code Playgroud)
我想到将测试包装在 中更合适StrictMode,以更接近应用程序的实际渲染方式:
act(() => {
render(
<React.StrictMode>
<Router>
<SomeComponentIWantToTest />
</Router>
</React.StrictMode>
);
});
Run Code Online (Sandbox Code Playgroud)
尝试之后,我注意到以下几点:
act. 我能够修复这些地方。欢呼!另外,快速浏览一下文档,这似乎StrictMode只是开发的事情。那么,将测试(理论上与生产中将发生的情况有关)包装起来有意义吗React.StrictMode?
不,我不这么认为。您应该测试您的生产系统行为。
参考: https: //react.dev/reference/react/StrictMode
严格模式仅用于开发:
所有这些检查仅限于开发,不会影响生产版本。
测试仅开发的东西有什么意义?
而严格模式会进行双重渲染并重新运行效果。您绝对不希望您的生产系统出现这样的行为。因此,不要为其编写测试用例,因为该行为不是预期的。这只是为了开发时间。
顺便说一下,官方的react-test-renderer不支持严格模式。这可能意味着,“正式”没有必要测试它。
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |