Enzyme學習筆記

2021-09-27 16:01:27 字數 1302 閱讀 3777

enzyme是airbnb開源的react測試工具庫,它通過對官方提供的測試工具reacttestutils進行二次封裝,提供了一套簡潔強大的api,類似jquery的風格,並且內建cheerio。

上篇關於jest的文章中,我並沒有講環境搭建,因為在我看來,進行類react專案的測試,這兩者搭配起來,才是最完美的。所以放在這裡講開發環境的搭建。

安裝jest、enzyme、babel-jest以及enzyme-adapter-react-16。並進行簡單配置。

引入enzyme-adapter-react-16之後,我們在每乙個測試檔案中,都要執行以下操作。

import enzyme from 'enzyme';

import adapter from 'enzyme-adapter-react-16';

enzyme.configure();

為了解這個問題,可以將上面的**儲存為乙個單獨的檔案,在jest的配置項setupfilesafterenv中,引入這個檔案,以後在每次測試前,都會先執行這個檔案中的**,進行環境的初始化。

這裡,貼乙個基於typescript + react-native的專案環境配置。

"jest": ."

],// 測試時要忽略的**

"testpathignorepatterns": [

"\\.snap$",

"/node_modules/"

],// 轉換器,由於測試**中會使用es6,或者更新的es**,所以需要轉譯。

"transform": ,

// 轉譯時需要忽略的**,?!這種形式表示除了這些**之外的**都忽略,這裡意味著需要轉譯node_modules下的react-native中的**,這是因為react-native中某些包在發布時,是以原始碼進行發布的,所以,我們需要手動轉譯。樓主曾經在這翻了大跟斗!

"transformignorepatterns": [

"/node_modules/(?!(react-native|react-native-deprecated-custom-components)/)"

],"collectcoveragefrom": [

"src/**/*.ts",

"!**/node_modules/**",

"!src/**/model.ts"

],"coveragereporters": [

"text-summary",

"json-summary",

"lcov",

"html"

]}

React 測試利器之 Enzyme

react測試利器enzyme有三種渲染方式 shallow,mount,render。shallow渲染叫淺渲染,僅僅對當前jsx結構內的頂級元件進行渲染,而不對這些元件的內部子元件進行渲染,因此,它的效能上最快的,大部分情況下,如果不深入元件內部測試,那麼可以使用shallow渲染。mount則...

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...