【问题标题】:Saving variables in Cypress在赛普拉斯中保存变量
【发布时间】:2019-12-30 10:33:09
【问题描述】:

我想实现我的测试比较列表的长度。为了获得我的列表的长度,我正在执行以下操作:

 const oldListCount = cy.get('.grid-row').its('length');

稍后在测试中,我想将 oldListCount 与当前长度进行比较。

 newListCount.should('be.gt',oldListCount);

但赛普拉斯说 'oldListCount' 是 [object Object]

我还尝试使用别名并封装.then 像这样:

cy.get('.grid-row').its('length').then(newListCount => {
  oldLC.then(oldListCount => {
     newListCount.should('be.gt', oldListCount.toString());
    })
});

但要么工作.. 另外值得一提的是,当我在封装的.then 中记录两个 listCounts 时,Count 是相等的,而 UI 和 Cypresslogs 向我展示了其他内容。

对于我的测试,Count 是一个特定的数字并不重要,更重要的是新的 Count 大于旧的。

有人可以指点我正确的方向吗?

【问题讨论】:

    标签: javascript typescript cypress


    【解决方案1】:

    我认为这样的事情会奏效 首先,您需要将旧列表另存为别名

    cy.get('.grid-row').as('oldList')
    

    然后在测试中

    cy.get('@oldList').its('length').then(oldLength => {
     cy.get('.grid-row').its('length').should('be.gt' , oldLength)
    })
    

    【讨论】:

    • 我在测试中尝试过,但是当它比较两个列表长度时,Count 总是等于当前网格长度。别名不保存旧列表计数。
    【解决方案2】:

    我已经通过创建具有标准化行为的测试来解决它。 所以我不需要保存计数,因为我总是希望得到一个给定的响应,这应该是最佳实践,不是吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2022-07-22
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      相关资源
      最近更新 更多