node.js - 在 Jest 中测试失败时如何打印请求和响应?
问题描述
我正在使用 Supertest 和 Jest 来测试 Node.js API。
样本测试具有以下格式
it('Read a note for a user', (done) => {
request(graphqlURL)
.post('/graphql')
.set(baseHeaders())
.send({
query: graphQLQuery
})
.end((err, res) => {
expect(res.status).toBe(200);
done();
})
});
当前,当期望失败时,将记录以下内容
expect(received).toBe(expected) // Object.is equality
Expected: 200
Received: 404
我还想在失败的测试旁边记录请求和响应,以便在调试时获得更多上下文。
有没有办法只打印那些失败的测试?
解决方案
expect
通过Error
在期望失败时抛出一个来工作。
的message
属性Error
是在测试报告中打印的内容。
我想如果您想使用现有的期望并且只想使用可以捕获的附加数据来增加失败消息Error
,将附加数据附加到message
属性,然后像这样再次抛出Error
:
it('Read a note for a user', (done) => {
request(graphqlURL)
.post('/graphql')
.set(baseHeaders())
.send({
query: graphQLQuery
})
.end((err, res) => {
try {
expect(res.status).toBe(200);
} catch (err) {
// --- add additional data to the error message here ---
err.message = `${err.message}\n\nfailing query: ${graphQLQuery}`;
throw err; // throw the error so test fails as expected
}
done();
})
});
推荐阅读
- javascript - 递归自动增量功能无法解析
- javascript - @click 事件中的问题,该事件添加了一个 fontawesome 图标
- php - 如何使用 brozot / Laravel-FCM 在推送通知上添加图像
- nginx - 如何路由到不同的服务器和命名空间
- python - 为什么我的python脚本输出文件为空
- netty - Netty 可共享通道处理程序是单例实例吗?
- python - 使用 matplotlibs 'FuncAnimation' 在视频上绘制数据
- java - javax.ws.rs.core.Application 构造函数调用了两次
- node.js - 如何在 MongoDB 请求中获取父母和父母的兄弟姐妹
- c++ - 使用浮点数或双精度数将特征变换应用于向量的函数