如何解决Jest 中的回调响应与正常响应不同
我有一个在 React Native 中调用端点的方法,我想用玩笑测试它。一切都是异步的,它可以工作,但是在测试端调用函数时的回调响应与在应用程序中正常调用函数时的响应完全不同。
通常,我的响应将是这样的 JSON:
"_bodyBlob":{
"_data":{
"__collector":[
"Object"
],"blobId":"43564E12-D797-4971-80C7-A6E06D690F8A","name":"login","offset":0,"size":784,"type":"application/json"
}
},"_bodyInit":{
"_data":{
"__collector":[
"Object"
],"bodyUsed":false,"headers":{
"map":{
//a lot of private data here and others
}
},"ok":true,"status":200,"statusText":"","type":"default","url":"private url"
}
Response {
size: 0,timeout: 0,[Symbol(Body internals)]: { body: <Buffer >,disturbed: false,error: null },[Symbol(Response internals)]: {
url: undefined,status: 200,statusText: 'OK',headers: Headers { [Symbol(map)]: [Object: null prototype] },counter: undefined
}
}
Which is not even a JSON.
当 Jest 调用该方法时,这是回调的 normal response
还是我调用该函数时可能出错,因为它都是 asynchronous
?
感谢您抽出宝贵时间。
解决方法
在您的 Jest 测试中,响应似乎是 javascript Response 对象:https://developer.mozilla.org/en-US/docs/Web/API/Response
为了从中获取 JSON,您需要应用其 json() 方法,如本例所示:https://developer.mozilla.org/en-US/docs/Web/API/Response#an_ajax_call
因此,一旦您获得响应对象,请执行以下操作:
const jsonValue = await response.json();
jest 和实际应用程序中的值不同的原因可能是在您的实际应用程序中,处理响应的库可能会在向您传递响应之前调用 json 对象。 >
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。