微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jest 中的回调响应与正常响应不同

如何解决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"
}

但是Jest调用方法返回的响应是这样的:

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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?