我正在嘗試在 React 項(xiàng)目中掌握測試組件的竅門。到目前為止,我在單個(gè)組件上有一個(gè)測試文件,我正在嘗試將此文件準(zhǔn)備為包含多個(gè)測試的測試套件。import React from 'react';import Enzyme, { mount } from 'enzyme';import Adapter from 'enzyme-adapter-react-16';import HamburgerIcon from './HamburgerIcon';Enzyme.configure({ adapter: new Adapter() });describe('<HamburgerIcon />', () => { const hamburgerIcon = mount(<HamburgerIcon showOverlay={showOverlay} />); it('displays on mobile', () => { ... ... }); it('has class .open after click', () => { ... ... }); hamburgerIcon.unmount();});我已經(jīng)刪除了兩個(gè)測試的內(nèi)容,但基本上這兩個(gè)測試都包含在一個(gè)describe函數(shù)中,并且我正在嘗試mount使用一次組件和unmount一次組件以保持干燥(不要重復(fù)自己) .我mount將兩個(gè)it函數(shù)放在之前,認(rèn)為在運(yùn)行測試之前安裝組件是合乎邏輯的。我unmount在兩個(gè)測試函數(shù)之后放置了,這導(dǎo)致了錯(cuò)誤:方法“模擬”旨在在 1 個(gè)節(jié)點(diǎn)上運(yùn)行。0 找到了。我認(rèn)為這是因?yàn)樵趯?shí)際運(yùn)行測試之前組件正在卸載。如果我mount和unmount在這兩個(gè)測試中,像這樣......describe('<HamburgerIcon />', () => { it('displays on mobile', () => { const hamburgerIcon = mount(<HamburgerIcon showOverlay={showOverlay} />); ... ... hamburgerIcon.unmount(); }); it('has class .open after click', () => { const hamburgerIcon = mount(<HamburgerIcon showOverlay={showOverlay} />); ... ... hamburgerIcon.unmount(); });});...測試通過。不過,這似乎有些過分。如果我的測試套件有十個(gè)測試功能呢?我應(yīng)該在每次測試時(shí)都像這樣安裝和卸載嗎?
在 Enzyme 描述函數(shù)中安裝和卸載的位置?
寶慕林4294392
2021-06-09 17:49:10