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

Angular13+Jest集成Pact v10.4.1时Mock Server未接收请求问题排查

Angular 13 + Jest + Pact v10.4.1 契约测试Mock Server无请求排查思路
  • 检查Pact与Jest的异步执行顺序

    • 确保Pact交互注册(addInteraction)逻辑在HttpClient请求之前完成,用async/await包裹交互注册代码,避免请求发起时交互还未生效。
    • 排查测试中所有异步操作(组件初始化、服务调用等)是否正确使用await等待完成,防止请求提前发送。
  • 验证请求的完整匹配规则

    • Pact采用严格匹配模式,核对请求的HTTP方法、路径、headers、查询参数是否与注册的交互完全一致,比如注意路径末尾斜杠差异、Content-Type等header是否匹配。
    • 启用Pact调试日志(设置环境变量PACT_LOG_LEVEL=debug),对比实际发送的请求与预期交互的差异细节。
  • 检查Mock Server生命周期管理

    • 确认测试用例的beforeAll/afterAll钩子正确绑定了Mock Server的启动与销毁逻辑,测试结束时调用verifyAndPublish或finalize方法,避免服务器提前关闭。
    • 针对Mock Server ID显示为unknown的问题,排查Pact实例初始化是否正确,确保创建Mock Server时保存了有效实例引用。
  • 排查Angular HttpClient配置干扰

    • 移除测试模块中的HttpClientTestingModule,该模块会拦截所有HttpClient请求,导致请求无法到达Pact Mock Server。
    • 检查全局HTTP拦截器(如AuthInterceptor)是否在测试环境中被正确禁用,避免请求被修改或拦截。
  • 验证网络可达性

    • 测试运行期间,手动用curl或Postman访问http://127.0.0.1:50118/users/1,确认Mock Server是否正常响应,排查端口占用或服务器启动异常问题。
    • 检查本地防火墙、代理设置,确保未阻止127.0.0.1的端口通信。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:05:35