在Cypress中,如何在主体中存根带有参数的POST API请求?

在Cypress中,如何在主体中存根带有参数的POST API请求?,cypress,stub,Cypress,Stub,我正在用Cypress编写一个端到端测试,我想存根我的应用程序发出的网络请求。具体地说,我想剔除正文中有参数的多个POST请求,并根据这些参数更改我的模拟响应 我想做一些像 cy.route({ method: "POST", url: "/todos/add" params: { "urgency": 3, "stakeholder_id": "SKH001" }, response: "fixture:add1.json", }) cy.route({

我正在用Cypress编写一个端到端测试,我想存根我的应用程序发出的网络请求。具体地说,我想剔除正文中有参数的多个POST请求,并根据这些参数更改我的模拟响应

我想做一些像

cy.route({
  method: "POST",
  url: "/todos/add"
  params: {
    "urgency": 3,
    "stakeholder_id": "SKH001"
  },
  response: "fixture:add1.json",
})

cy.route({
  method: "POST",
  url: "/todos/add"
  params: {
    "urgency": 1,
  },
  response: "fixture:add2.json",
})
但是通读之后 而且,我看不到一种受支持的方法来检查正在存根的请求中的参数

我可以通过将函数传递给
cy.route
onRequest
参数来完成此操作吗?如果是这样,我将从告诉cypress“此路由实际上不处理此请求”的函数返回什么


请参阅他们的教程:

您也可以使用intercept方法

cy.intercept('POST', <your api end point>, {response:
<your json file path>}).as('postAPI')
cy.intercept('POST',{响应:
}).as('postAPI'))

那么您想根据车身返回不同的夹具?请参阅中的“响应函数”示例-您需要在
RoutedData
中使用响应函数吗?我相信响应函数只启动一次,而不是每个路由。这个问题可能会提供一些想法。请原谅我的无知,参数是否重要,以便您可以返回不同的响应?@Maccurt yes,将更新问题以使其更清楚。在这些情况下,指出发生了什么变化并解释其重要性非常有用。在本例中,我看到您将
params
更改为
body
。但如果没有解释,这真的很容易错过。你能更新你的答案吗?这也是不准确的<根据官方文件,代码>正文不适用于
路线
cy.intercept('POST', <your api end point>, {response:
<your json file path>}).as('postAPI')