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

Cypress中如何用正则断言存根函数的参数?

解决方法

你可以通过在calledWithMatch中传入匹配对象结构的参数,结合Cypress.sinon.match的正则来精准断言segmentB的格式。具体写法如下:

cy.get('@myMethodStub') // 替换成你实际的存根别名
  .should('be.calledWithMatch', 
    'start', 
    { segmentB: Cypress.sinon.match(/^MPI_/) }
  )

失效原因说明

如果之前直接把正则作为第二个参数传入,calledWithMatch会尝试用正则匹配整个第二个参数(即包含5个键的对象),而非对象内部的segmentB属性,导致断言失败。必须明确指定对象的属性结构,让Sinon定位到要校验的目标字段。

可选替代方案

如果需要更灵活的参数校验,也可以取出存根的调用参数后单独断言:

cy.get('@myMethodStub').then(stub => {
  const targetObj = stub.getCall(0).args[1] // 获取首次调用的第二个参数
  expect(targetObj.segmentB).to.match(/^MPI_/)
})

这种方式更直观,适合需要对参数做多项校验的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:52:04