您好,登錄后才能下訂單哦!
在Jest測(cè)試中,處理?xiàng)l件渲染通常需要使用jest.spyOn()
方法來模擬組件的行為
@testing-library/react
和@testing-library/jest-dom
庫。如果沒有,請(qǐng)運(yùn)行以下命令進(jìn)行安裝:npm install --save @testing-library/react @testing-library/jest-dom
MyComponent
的組件,它根據(jù)isVisible
屬性來決定是否顯示內(nèi)容:// MyComponent.js
import React from 'react';
const MyComponent = ({ isVisible }) => {
if (!isVisible) {
return null;
}
return <div>Hello, World!</div>;
};
export default MyComponent;
MyComponent.test.js
的測(cè)試文件,并編寫以下測(cè)試用例:// MyComponent.test.js
import React from 'react';
import { render, screen } from '@testing-library/react';
import MyComponent from './MyComponent';
describe('MyComponent', () => {
it('renders content when isVisible is true', () => {
render(<MyComponent isVisible={true} />);
expect(screen.getByText('Hello, World!')).toBeInTheDocument();
});
it('does not render content when isVisible is false', () => {
render(<MyComponent isVisible={false} />);
expect(screen.queryByText('Hello, World!')).not.toBeInTheDocument();
});
});
在這個(gè)例子中,我們使用render
函數(shù)來渲染MyComponent
組件,并傳遞不同的isVisible
屬性值。然后,我們使用screen.getByText()
和screen.queryByText()
方法來檢查組件是否按預(yù)期渲染。
注意:在第二個(gè)測(cè)試用例中,我們使用screen.queryByText()
而不是screen.getByText()
,因?yàn)楫?dāng)isVisible
為false
時(shí),組件不應(yīng)該渲染任何內(nèi)容。screen.queryByText()
會(huì)返回null
(如果找不到元素),這樣我們就可以使用not.toBeInTheDocument()
斷言來檢查組件是否未渲染。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。