我需要知道如何从以下函数模拟fetchRequest。我需要从logData函数获取响应,但就我而言,它正在执行catch。 无论如何有模拟这个功能。谁可以帮我这个事。
it("logData", async () => {
var remoteURL = ClassName.logData(params);
await expect(ClassName.logData(params)).toBe(somevalue)
});
export function logData(params) {
return fetch(
"someURL",
{
method: 'POST',
headers: {
'Authorization': authToken,
'Content-type': 'application/json',
},
body: JSON.stringify(params),
}
)
.then(response => {
console.log("Response" + JSON.stringify(response))
props.setState({ "keys": response.start, });
})
.catch(error => {
console.log('ERROR' + error);
return 'ERROR---', error;
});
}
export default function fetchRequest (input, init) {
return new Promise(function(resolve, reject) {
var request = new Request(input, init)
var xhr = new XMLHttpRequest()
/* @patch: timeout */
if (init && init.timeout) {
xhr.timeout = init.timeout;
}
/* @endpatch */
console.warn('timeout time'+init.timeout);
xhr.onload = function() {
var options = {
status: xhr.status,
statusText: xhr.statusText,
headers: parseHeaders(xhr.getAllResponseHeaders() || '')
}
xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
})
}