Cypress.io + TypeScript。测试开始时断言调用

2023-12-30

我是 Cypress.io 和 TypeScript 的新手。所以我不明白这里的一些东西。

My code:

//Test
describe('TEST description', function () {
it('newJobCreation', function () {
    //Some code 1
    var numberBefore = cy.get('#idOfItem')
    var _numberBefore = +numberBefore
    //Some code 2

    var numberAfter = cy.get('#idOfItem')
    var _numberAfter = +numberAfter
    //Assertion
    expect(_numberBefore-1).equals(_numberAfter) //Same result if I use: assert.equal(_numberBefore-1, _numberAfter)
   }) 
})

假设 _numberBefore 之后 //Some code2 被更改并变为 _numberAfter。我想断言这个数字减少了 1。

在 Cypress.io 中运行测试后,我收到错误消息:

预期 NaN 等于 NaN

它失败了。

问题:

为什么我的断言在执行完所有代码后没有调用?为什么在测试开始时调用它?


Cypress 一次性对您的所有命令进行异步排队。这意味着

let elem = cy.get("#elem");
// attempt to do something with returned element...

不管用。cy.get()只是告诉赛普拉斯添加get()命令添加到最终要运行的命令列表中。它不会立即运行该命令。

.then()提供了一个很好的替代方案 - 您可以使用它来排队一些要在命令运行时运行的 Javascript,如下所示:

cy.get("#elem1").then(elem1 => {
    // elem1 is the underlying DOM object.

    // You can put regular javascript code here:
    console.log("This will happen when the queued .then() command is run");

    // You can also put more Cypress commands here, like so:
    cy.get("#elem2").should(elem2 => {
        expect(elem1.someProperty).to.equal(elem2.someProperty);
    });
});

注意.should(() => {})行为就像.then(),除非如果任何包含的断言失败,它将重试。

See here https://docs.cypress.io/guides/core-concepts/variables-and-aliases.html#Closures有关相互比较两个元素的值的更多信息,请参阅此文档页面 https://docs.cypress.io/guides/core-concepts/variables-and-aliases.html有关 Cypress 中异步命令队列的一般概念的更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cypress.io + TypeScript。测试开始时断言调用 的相关文章

  • 未推断扩展接口的通用类型

    在下面的示例中 Typescript 可以推断出类型T在方法中foo从传递给它的参数bar 但它并没有推断出类型R 感觉应该如此 因为它知道类型T还有那个T extends I
  • 使用 XLSX.readFile 读取文件

    在 Typescript 中 执行时出现错误 无法读取未定义的属性 替换 const xlsx XLSX readFile fileName filename 是现有文件的路径 我读过 readFile https docs sheetjs
  • 为什么 TypeScript 中默认导出接口有限制?

    我正在使用 TypeScript 1 5 beta 并且尝试将接口导出为默认导出 以下代码会在 Visual Studio 和 WebStorm 中导致错误 export default interface Foo 但是 下面的代码可以正常
  • Typescript 类似断言的类型保护

    这是否可以在没有限制的情况下限制类型if通过函数调用never返回例如undefined like assert在打字稿中 示例代码 interface Foo bar void function getFoo Foo undefined
  • Angular RouteReuseStrategy 后退按钮/跨模块

    有关我的应用程序的信息 Angular 12 由 3 个模块组成 每个模块都有一个带有列表的概述页面和一些详细信息页面 每条路线都有一个区域标签 因此我知道用户正在哪个模块中导航 所以我想实现 Angular 的 RouteReuseStr
  • 如何在 Redux Toolkit 中订阅 React 组件之外的状态?

    我有以下切片 export const authenticationSlice createSlice name authentication initialState isFirstTimeLoading true signedInUse
  • 从字符串变量导入模块

    我需要从内存变量导入 JavaScript 模块 我知道这可以使用SystemJS and Webpack 但我找不到一个好的工作示例或文档 文档主要讨论 js 文件的动态导入 基本上我需要像下面这样导入模块 let moduleData
  • 将自己编写的 TypeScript 模块导入 Svelte 组件时出现错误

    我正在尝试将自己编写的 TypeScript 模块导入到 Svelte 组件中 但是 当我尝试使用以下行导入模块时 我收到以下错误 import TelegramBotForSafetyMania from telegram bot 我们收
  • 在 TypeScript 中生成具有单个模块的声明文件

    给定以下文件夹结构 src foo ts bar ts baz ts index ts Where foo ts bar ts and baz ts每个导出一个默认类或事物 即在foo ts export default class Foo
  • 获取路由查询参数

    我正在尝试从 rc1 迁移到 rc4 但在获取查询字符串参数时遇到问题 ActivatedRoute 对象始终为空 英雄组件 ts import Component OnInit from angular core import Contr
  • Angular 5 - 谷歌未定义(谷歌地图)

    我想在我的 Angular 5 应用程序上使用谷歌地图 但遇到了一些问题 加载视图时 我在 js 控制台中收到错误 LoginComponent Host ngfactory js sm 1 ERROR ReferenceError goo
  • 使用“class-validator”在 TypeScript 中确认密码

    今天 我试图弄清楚如何在应用程序的后端 NestJS 验证注册表单 我只是想知道是否存在一种验证方法password and passwordConfirm匹配 使用class validator包来构建自定义验证器或利用提供的验证器 我正
  • Nightmare.js 截图缓冲区长度 0

    我正在运行一个 night js 脚本 我试图在其中截取页面上多个元素的屏幕截图 The first元素被捕获得很好 但折叠下方的所有其他元素都以零长度捕获 我正在努力调试这个问题 任何帮助将非常感激 基本上这个脚本会遍历一个页面并选择al
  • 服务器发现和监控引擎已弃用

    我在 Node js 应用程序中使用 Mongoose 这是我的配置 mongoose connect process env MONGO URI useNewUrlParser true useUnifiedTopology true u
  • 从 Angular 6 中的 html 导出 Pdf

    我想从 Angular 6 中的 html 导出 pdf 所以 我正在使用jspdf图书馆 但我不能给出颜色和背景颜色等样式 我怎样才能实现这个目标 如果有其他免费图书馆jspdf 我可以用它 您可以从下面的链接查看演示 DEMO http
  • 如何导入 nano (couchdb) - typescript

    我在节点应用程序中导入和使用 nano 时遇到问题 js 方式 来自文档 是 var nano require nano http localhost 5984 我该如何用打字稿做到这一点 I tried import as Nano fr
  • Angular 4 中的箭头函数(Lambda 函数)

    我对lambda知之甚少 lambda表达式被视为一个函数 我们有很多方法可以做到这一点 这是我的简单功能TypeScript file byPan card1 card2 return card1 pan card2 pan 我在 HTM
  • 仅使用 typescript(没有 webpack 和 bable),我可以获得在浏览器中运行的多文件解决方案吗?

    tsconfig json 需要什么才能在 Chrome 中工作 这样我只需运行 tsc 就可以在浏览器中查看该文件 并且适当的结果将显示在控制台中 index html 包含 index ts 包含 import alpha from a
  • 使用 SystemJS 和 TypeScript 的 Angular 应用程序中的“意外令牌导出”

    问题 神秘的 意外的代币导出 我碰巧在 plunker 中运行的 Angular 示例中遇到此错误 其中 SystemJS 在浏览器中转换 TypeScript 代码 代码没有任何问题本地运行良好 Solution 这不是角度问题 在浏览器
  • Rxjs 可观察等待直到满足某些条件

    我有以下重试逻辑来重试操作 对于单个请求来说它工作得很好 对于多个正在进行的请求 我想在重试之前等待现有的重试逻辑完成 handleError errors Observable

随机推荐