Jest 是一个流行的 JavaScript 测试框架,可以与 React 项目中的 Context API 一起使用
npm install --save react react-dom
npm install --save-dev jest babel-jest @babel/core @babel/preset-env @babel/preset-react react-test-renderer
.babelrc
的文件,并添加以下内容:{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
src
目录下创建一个名为 context.js
的文件,用于定义 Context:import React from 'react';
const MyContext = React.createContext();
export default MyContext;
MyProvider.js
的文件,用于包装组件并提供 Context 值:import React from 'react';
import MyContext from './context';
const MyProvider = ({ children }) => {
const value = 'Hello, world!';
return <MyContext.Provider value={value}>{children}</MyContext.Provider>;
};
export default MyProvider;
MyComponent.js
的文件,用于使用 Context:import React, { useContext } from 'react';
import MyContext from './context';
const MyComponent = () => {
const value = useContext(MyContext);
return <div>{value}</div>;
};
export default MyComponent;
MyComponent.test.js
的文件,用于编写 Jest 测试:import React from 'react';
import { render } from '@testing-library/react';
import MyComponent from './MyComponent';
import MyProvider from './MyProvider';
describe('MyComponent', () => {
it('renders the value from MyContext', () => {
const { getByText } = render(
<MyProvider>
<MyComponent />
</MyProvider>
);
expect(getByText('Hello, world!')).toBeInTheDocument();
});
});
现在,你可以运行 npm test
命令来执行测试。这将会测试 MyComponent
是否正确地从 MyContext
接收并显示值。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。