>本文使用JEST(一个Facebook维护的测试框架)探讨了测试React组件和简单的JavaScript功能。 我们将从简单的JavaScript函数开始,然后再转移到特定于反应的功能。 开玩笑不仅仅是反应。对于任何JavaScript应用程序,它都足够多。但是,它的功能对于UI测试特别有用,使其非常适合React。
密钥点:
,,)。 这些功能类似于redux还原器。
> app/state-functions.js
测试驱动的开发(TDD):toggleDone
> TDD(代码之前的写作测试)具有优势,而该方法通常是个人喜好的问题。 对于React组件,首先编写组件,然后添加测试通常是实用的。
addTodo
deleteTodo
介绍开玩笑:
>安装和配置:
安装必要的软件包:
>确保存在a文件(原始文章中提供的示例)。 Jest期望在
>目录中进行测试(或以>或
结尾的文件)。>
测试业务逻辑:
npm install --save-dev jest babel-jest @babel/core @babel/preset-env @babel/preset-react
>babel.config.js
用于对象/数组比较,而__tests__
则用于原始类型。 Jest's Watch Mode(.test.js
或.spec.js
)会自动重新运行文件更改。 原始文章也显示了类似的
> 测试反应组件:
测试反应组件通常涉及比业务逻辑更少的全面测试。 酶(或React Teast库,根据React团队的建议)简化了此过程。安装酶和适当的适配器:
npm install --save-dev jest babel-jest @babel/core @babel/preset-env @babel/preset-react
创建setup-tests.js
配置酶:
import { toggleDone } from '../app/state-functions'; test('toggleDone completes an incomplete todo', () => { const startState = [{ id: 1, done: false, text: 'Buy Milk' }]; const finState = toggleDone(startState, 1); expect(finState).toEqual([{ id: 1, done: true, text: 'Buy Milk' }]); });
在package.json
中配置开玩笑> setup-tests.js
:
npm install --save-dev enzyme @wojtekmaj/enzyme-adapter-react-17
显示了Todo
组件渲染的测试,使用mount
渲染和find
来定位元素。 随后的测试使用jest.fn()
来创建间谍函数,并simulate('click')
触发事件,用toBeCalledWith
>。
结论:
,React测试渲染器,用Props测试组件,并在组件中测试功能。render
以上是如何使用开玩笑测试反应组件的详细内容。更多信息请关注PHP中文网其他相关文章!