【发布时间】:2021-05-05 21:23:47
【问题描述】:
我在 React 中使用 axios,但在测试时遇到问题
这是我迄今为止在我的 test.js 文件中尝试过的:
jest.mock('axios');
describe('RssFeed', () => {
let component;
let data;
beforeEach( () => {
data = data {
data: {...}
};
}
test('fetches data successfully', (done) => {
axios.get.mockResolvedValue(data);
setTimeout(() => {
expect(axios).toHaveBeenCalled();
done();
}, 500);
});
});
这就是我在组件中设置 axios.get 的方式:
const [feedBody, setFeedBody] = useState([]);
const apiUrl = 'apiUrl';
useEffect( () => {
axios.get(apiUrl)
.then((response) => (response.data))
.then((data) => {
setFeedBody(data);
})
.catch((err) => console.log(err));
}, []);
运行测试后,我得到:
错误:未捕获 [错误:expect(jest.fn()).toHaveBeenCalled() 预期调用次数:>= 1 接听电话数:0]
提前致谢
【问题讨论】:
-
stackoverflow.com/questions/65336283/… 我有类似的东西。也许这可以帮助你。
标签: reactjs jestjs axios enzyme