本质上,我试图知道在这个例子中,axios是否被正确的args调用:
import HttpRequestMock from 'http-request-mock';
import axios, { AxiosPromise } from 'axios';
const url = 'https://example.com';
// myFile.ts
// Private function that isn't exposed
async function businessLogic(): Promise<AxiosPromise<unknown>> {
return axios({ // How do I know this has been called from jest?
method: 'put',
url,
});
}
export async function myCoolEndpoint(): Promise<void> {
const res = await businessLogic();
console.log(res.data);
}
个字符
我一直无法找到任何人能够窥探axios时,它是这样叫,而不是嘲笑了整个图书馆。
2条答案
按热度按时间h9a6wy2h1#
为了实现所需的行为,您应该对代码进行以下更改:
将
axios({ method: 'put',url})
替换为axios.request({ method: 'put',url})
将
expect(spy).toHaveBeenCalled();
替换为expect(axios.request).toHaveBeenCalled();
您不必保存spyOn方法的返回
希望它能帮助
iaqfqrcu2#
我通常会为http方法创建一个 Package 器文件,你可以在其中重用http代码,比如:
字符串
然后在我的jest文件中模拟http Package 器函数
型
这样,您就不会模拟整个axios库,而只是模拟http Package 器函数,您可以抛出不同的错误,并查看函数的行为
希望这对你有帮助,干杯