首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Cypress :如何将响应体JSON转发到标头上

Cypress :如何将响应体JSON转发到标头上
EN

Stack Overflow用户
提问于 2019-01-24 11:17:20
回答 1查看 6.6K关注 0票数 1

我将使用Cypress.io测试REST,但是使用链接请求,它希望这样工作,第一个API上的JSON响应体将在下一个API头上使用,用于授权

我已经尝试使用cypress命令并在console.log上打印,但是它似乎没有在日志中捕获,或者对此有任何线索,或者我只是使用另一个命令,比如cy.route?

代码语言:javascript
代码运行次数:0
运行
复制
Cypress.Commands.add("session", () => {
    return cy.request({
      method: 'POST',
      url: '/auth/',
      headers: {
        'Content-Type': 'application/json',
      },
      body: {
        "client_secret" : ""+config.clientSecret_staging,
        "username": ""+config.email_staging,
        "password": ""+config.password_staging
      }
    }).then(response => {
      const target = (response.body)
    })
  })

  it('GET /capture', () => {
    cy.session().then(abc =>{
    cy.request({
      method: 'GET',
      url: '/capture/'+target 
    })
      })
    })

目标是从target = (response.body)捕获JSON数组的解析

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 07:27:17

你有两个选择:

  • 保持代码原样,请注意
代码语言:javascript
代码运行次数:0
运行
复制
.then(response => {
  const target = (response.body)
})

代码没有返回任何内容,所以cy.session().then(abc =>{ ...代码得到了整个response (abc是第一个.then的响应)

  • 将代码更改为
代码语言:javascript
代码运行次数:0
运行
复制
.then(response => {
  const target = (response.body)
  return target // I added this return
})

然后您的abc参数将等于response.body,而不是response

这是因为如果您不从可链式调用返回一个主题,默认的主题将被传递给下一个.then函数。

如果它能满足你的问题,请告诉我。

附注:欢迎

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54345371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档