我试图模仿axios,它有以下代码(摘录)
const result = await axios.patch(url, { customerId: '12345' });
为此,在我的单元测试中,我将执行以下操作
import axios from 'axios';
jest.mock('axios');
const mockedAxios = axios as jest.Mocked<typeof axios>;
mockedAxios.patch.mockImplementation(() => Promise.resolve({ status: 202 }));
然而,当我运行代码时,它并不运行我的模拟,它只是运行普通的axios库。
1条答案
按热度按时间mkshixfv1#
选项1.使用
jest.fn()
创建一个mock函数并替换axios.patch()
方法。选项2.使用
jest.spyOn(axios, 'patch').mockResolvedValueOnce({})
选项3.
jest.mock('axios')
也应该可以工作,jest会在需要时用自动模拟的版本模拟模块。例如,使用选项1。
单元测试结果: