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...