>本文使用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測試組件以及組件中的測試功能。
以上是如何使用開玩笑測試反應組件的詳細內容。更多資訊請關注PHP中文網其他相關文章!