Enzyme主要包括三個測試:
① shallow:是官方測試工具庫 react-addons-test-utils 中 shallow rendering 的封裝。是將一個組件渲染成虛擬DOM對象的“淺渲染”。這種渲染不會涉及子組件,不需要DOM,生成的是虛擬DOM,所以渲染最快,然而它并不能測試子組件的相關代碼。
② mount:用于將React組件加載為真實DOM節點,它會生成完整的DOM節點,所以可以測試子組件。但是要依賴一個用jsdom模擬的瀏覽器環境。
③ render:會根據react組件得到一個靜態HTML文本結果,借助一個第三方的HTML解析庫Cheerio去生成一個類似于mount和shallow得到的封裝對象。它會將react組件渲染為html文本,然后在內部通過Cheerio自動生成一個Cheerio對象。
shallow是最快,但是shallow有局限性,render的效率是mount的兩倍。shallow和mount因為都是dom對象的緣故,所以都是可以模擬交互的,而render是不能的。