如何让赛普拉斯返回自定义错误或消息

时间:2019-02-18 13:58:04

标签: javascript cypress

我正在寻找一种创建自定义消息而不是标准消息的方法。我所拥有的是这段代码(有点儿混乱):

Cypress.Commands.add('authenticate', {prevSubject: 'optional'}, (_, fixture) => {
  return cy.fixture(fixture).then(credentials => {
    cy
      .apiRequest('scrambled/url/here', {
        method: 'post',
        authorizationMethod: 'Basic',
        token: apiOauthSecret,
        data: credentials
      })
      .then(resp => {
        expect(resp.status)
          .to
          .eq(201, 'Unable to authenticate, login failed')
        storeTokenInSession(resp.body)
      })
  })
})

该代码导致如下错误: https://i.stack.imgur.com/l2j4o.png

如果我修复了代码,这样结果就可以了,如下所示: https://i.stack.imgur.com/Pr1iA.png

如您所见,如果eq()失败而不是eq()成功,则应该显示该消息。

我只想在检查失败的情况下显示消息,但我也希望测试中断并停止。

您是否知道如何使它正常工作?我已经研究过使用cy.log()和此处显示的解决方案。

1 个答案:

答案 0 :(得分:1)

您可以使用Cypress.log

if (resp.status !== 201) {
  Cypress.log({
    name: 'Authentication'
    message: 'failed'
  })
}
expect(resp).its('status').eq(201)