您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Jest测试中,处理条件渲染通常需要使用jest.spyOn()
方法来模拟组件的行为
@testing-library/react
和@testing-library/jest-dom
库。如果没有,请运行以下命令进行安装:npm install --save @testing-library/react @testing-library/jest-dom
MyComponent
的组件,它根据isVisible
属性来决定是否显示内容:// MyComponent.js
import React from 'react';
const MyComponent = ({ isVisible }) => {
if (!isVisible) {
return null;
}
return <div>Hello, World!</div>;
};
export default MyComponent;
MyComponent.test.js
的测试文件,并编写以下测试用例:// 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();
});
});
在这个例子中,我们使用render
函数来渲染MyComponent
组件,并传递不同的isVisible
属性值。然后,我们使用screen.getByText()
和screen.queryByText()
方法来检查组件是否按预期渲染。
注意:在第二个测试用例中,我们使用screen.queryByText()
而不是screen.getByText()
,因为当isVisible
为false
时,组件不应该渲染任何内容。screen.queryByText()
会返回null
(如果找不到元素),这样我们就可以使用not.toBeInTheDocument()
断言来检查组件是否未渲染。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。