我正在模拟<App/>
发出的一个API调用,但是该调用的jest.mock
返回undefined。
这是我的应用程序:
import './App.css';
import Sidebar from './Sidebar';
import { useEffect, useState } from 'react';
import { getCount } from './api';
function App() {
const [state, setState] = useState({
status: 'ok',
count: 0,
});
useEffect(() => {
getCount().then((res) => setState((prevState) => ({ ...prevState, count: res })));
}, []);
return (
<div className='App'>
<Sidebar state={state} />
</div>
);
}
export default App;
下面是API调用(返回Promise):
export function getCount() {
return Promise.resolve(5);
}
以下是测试API调用的测试:
import { render, screen } from '@testing-library/react';
import App from './App';
jest.mock('./api', () => ({
getCount: jest.fn(() => Promise.resolve(5)),
}));
test('renders app', () => {
render(<App />);
});
这是我得到下面的错误。我不知道为什么笑话模拟,这是返回一个承诺(正是应用程序期望返回)仍然是作为'未定义'回来。任何帮助是最感谢的。
1条答案
按热度按时间zxlwwiss1#
尝试添加说明符,告诉它您正在使用ES6 import/exports模拟一个模块: