如何解决“无法在‘响应’上执行‘json’:正文流已读取”问题?

问题描述 投票:0回答:1

enter image description here

*类型错误:无法在“响应”上执行“json”:主体流已读取

以下错误源自您的应用程序代码,而不是来自赛普拉斯。这是由未处理的承诺拒绝引起的。

无法在“响应”上执行“json”:主体流已读取

当赛普拉斯检测到源自您的应用程序的未捕获错误时,它将自动使当前测试失败。

此行为是可配置的,您可以选择通过侦听 uncaught:Exception 事件来关闭此行为*

javascript json automation cucumber cypress
1个回答
0
投票

当您看到错误提示“未捕获的错误源自您的应用程序”时,这意味着应用程序本身已引发错误,但未处理该错误。 这并不是测试做错了,但您可以使用此处的代码告诉 Cypress 不要抱怨该问题

有条件地关闭特定错误的未捕获异常处理

Cypress.on('uncaught:exception', (err, runnable) => { if (err.message.includes('Failed to execute 'json' on 'Response'')) { return false } })

但是,在您的情况下,应用程序中的错误只是正在使用 
Response: json() 静态方法

(在应用程序中)

Response 接口的 json() 方法接受一个 Response 流并读取它以完成。

但错误告诉您响应流已被读取,并且可能已转换为 JSON 格式。

因此,删除

.json()

静态方法应该可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.