You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测试gRPC端点?Prisma记录测试结果不匹配求助

问题分析

测试结果不匹配核心有两点:

  • 结构差异:预期是数组包裹单个对象,实际返回的是单个对象
  • 格式差异:预期是非标准的无引号键值格式,实际是标准JSON格式(外层字符串导致引号转义)
解决方案

1. 调整测试预期匹配实际返回格式

如果gRPC端点设计就是返回单个对象,直接修改测试断言为实际返回的字符串:

Want: "message:"{\"id\":\"rJDWRx\",\"text\":\"kamil44\",\"published\":false}""

更规范的做法是解析JSON后断言对象结构(避免字符串匹配的脆弱性):

// 以Jest为例
const actualData = JSON.parse(response.message);
expect(actualData).toEqual({ id: 'rJDWRx', text: 'kamil44', published: false });

2. 修改端点返回数组结构

如果业务逻辑要求返回数组,在创建记录后将结果包装为数组再序列化:

const newRecord = await prisma.yourModel.create({ data: requestData });
// 包装为数组后序列化
return { message: JSON.stringify([newRecord]) };

3. 统一序列化格式

如果预期的是gRPC原生文本格式而非JSON,需要调整响应的序列化方式,使用gRPC的文本序列化器,确保输出格式符合无引号键值的样式。

内容的提问来源于stack exchange,提问作者Shibbaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:12:53