javascript - 如何让 Cypress 返回自定义错误或消息

标签 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)
      })
  })
})

该代码会导致如下错误: /image/l2j4o.png

如果我修改代码使结果正常,结果如下所示: /image/Pr1iA.png

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

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

你们知道如何让它工作吗?我已经研究过使用 cy.log() 和此处显示的解决方案。

最佳答案

您可以使用 Cypress.log为此:

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

关于javascript - 如何让 Cypress 返回自定义错误或消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54748914/

相关文章:

asynchronous - 如何链接 cy.request().then()?

cypress - 如何使用 Cypress 收听全局事件?

typescript - Cypress.io + typescript 。测试开始时的断言调用

javascript - 我可以从 Mocha 单元测试中删除文件吗?

javascript - meteor 页面加载后单独加载部分页面

javascript - cypress 测试运行时无法加载 map 和 css 的图 block

Cypress 断言 A 或 B

javascript - PHP 使用 AJAX 将数据 POST 到另一个页面

javascript - 按键后重置 lodash 去抖

javascript - 为什么 JavaScript 会自动转换一些数值