如何解决Testcafe TypeError:无法读取未定义的属性“响应”
我不是testcafe的新手,而是构造了一个logger和loggerResponseBody函数。但是在运行测试时,它会给我带来类型错误。同样,这些测试以前也可以工作。
logger和loggerResponseBody的代码:(logger和loggerResponseBody位于不同的文件中)
import { RequestLogger } from 'testcafe'
import { BASE_URL } from '../consts/generic'
export const logger = (endpoint,method = 'GET') =>
RequestLogger(
{ url: `${BASE_URL}/api/v1/${endpoint}/`,method },{
logResponseHeaders: true,logResponseBody: true
}
)
export const loggerResponseBody = (logger,requestNumber = 0) =>
JSON.parse(logger.requests[requestNumber].response.body.toString())
哪个给出错误:
1) TypeError: Cannot read property 'response' of undefined
browser: Chrome 85.0.4183 / Linux 0.0.0
10 | logResponseBody: true
11 | }
12 | )
13 |
14 |export const loggerResponseBody = (logger,requestNumber = 0) =>
> 15 | JSON.parse(logger.requests[requestNumber].response.body.toString())
16 |
解决方法
看起来您在服务器响应之前就记录了请求。您可以通过执行
来等待响应 await t.expect(logger.contains(r => r.response.statusCode === 200)).ok();
RequestLogger.contains
和RequestLogger.count
使用Smart Assertion Query Mechanism,以确保收到响应。
有关记录HTTP请求的更多信息,请参见Intercept HTTP Requests。
如果这不能解决问题,请附上您的测试代码,以便我们找出原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。