“element(selector, label).query(fn)”方法在 Angular E2E 测试中如何工作?

2024-02-18

为以下内容编写 E2E 测试时角度场景运行器我遇到了一个query() method:

element(selector, label).query(fn)

The 文档 http://docs.angularjs.org/guide/dev_guide.e2e-testing says:

执行函数 fn(selectedElements, done),其中 selectedElements 是与给定 jQuery 选择器匹配的元素,done 是在 fn 函数末尾调用的函数。该标签用于测试输出。

所以我为 html 页面上的一组按钮编写了一个 it-case:

it('should display all buttons on page load', function () {
    var buttonText = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
    element('button', 'UI elements').query(function (selectedElements, done) {
        selectedElements.each(function (idx, elm) {
            expect(elm.innerText in buttonText).toEqual(true);
        });
        done();
    });
});

作为测试执行的结果,我收到了 10 个失败的期望子句的列表,其中包含文本:

预期为 true 但未定义

中间调试表明elm.innerText in buttonText条件为真。

所以我的问题是,出了什么问题?是否是错误的使用done() method?


您不能在 element().query() 函数内调用expect()。

但你可以执行以下操作

var promise = element('SELECTOR').query(function(selectedElements, done) {
    // We are in JQuery land.
    if (selectedElements < 1) {
      done('ERROR MESSAGE')
    } else {
      done(null, selectedElements[0].innerText)
    }
    // For documentation only.
    // Don't return anything... just continue.
    done()
})
expect(promise).toEqual('i am waiting for you')

您可以将 Promise 和 Expect 合并到一个调用中。

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

“element(selector, label).query(fn)”方法在 Angular E2E 测试中如何工作? 的相关文章

  • Python:Factory Boy 生成对象创建时指定长度的列表

    我正在尝试使用 Factoryboy 在创建时指定长度的对象中创建一个列表 我可以创建列表 但由于提供的长度 大小的惰性性质 每次尝试创建具有指定长度的列表都会导致问题 这是我到目前为止所拥有的 class FooFactory facto
  • 调用一个从 AngularJS 表达式本地计算值的函数是不是很糟糕?

    我读了关于使用范围的一些 AngularJS 陷阱的文章 http thenittygritty co angularjs pitfalls using scopes 并且它指出您不应在表达式中使用函数 并且我知道每次框架认为需要时都可能会
  • 角度指令忽略非数字输入

    我必须为 IE8 编写一些代码 我有一个 ng repeat 创建一个表 其中包含
  • 如何通过 NUnit 有效地对使用 ADO.NET 和 SQL Server 的 DAL 进行单元测试?

    因此 您在 C 中有一个使用存储库模式的 DAL 并且每个存储库都有一个接口 它由 ADO NET MS SQL Server 和存储过程调用支持 这对于在进行单元测试时对正在其他地方使用的存储库进行存根 模拟非常有用 我喜欢它 不过 我很
  • 使用 IQueryable 进行单元测试代码

    我被要求为某些功能编写一些单元测试 但坦率地说 我不太确定这样做的必要性或有用性对于这个特殊的一段代码 我绝不试图质疑单元测试的必要性或有用性 所讨论的代码非常简单并且被大量使用 基本上它是 Skip 和 Take 扩展方法的包装 在我看来
  • Mockito mockStatic 无法解析符号

    我正在使用 Spring Boot 并在单元测试中 我试图模拟Files delete myFile toPath method 为此 我尝试使用Mockito mockStatic 方法 但是当我尝试使用它时 我的 IDE Intelli
  • Grails Asset-pipeline 不加载角度部分模板

    我将 angular ui bootstrap 与 Grails 2 3 x asset pipeline 1 6 1 插件一起使用 其中一个组件 alert js 正在尝试加载 template alert alert html 但这会解
  • GoogleTest 枚举类的测试错误打印

    我正在使用 GoogleTest 版本 1 7 0 来测试我的 C 应用程序 我有一个枚举定义如下 namespace MyNamespace enum class MyEnum MyEnumValue MyEnumValue2 Googl
  • 如何测试包含自定义表单控件的组件?

    我有一个这样的组件 Component selector app custom form control templateUrl
  • angularjs无法找到模板目录,flask作为后端

    我使用 Flask 作为后端 在客户端使用 angularjs 我的目录结构 dew gt app py gt templates gt hello html gt test html gt static gt js gt directiv
  • 如何将 node_modules 包含在单独的 browserify 供应商包中

    我正在尝试将 AngularJS 应用程序转换为使用 browserify 我已经使用 napa 在 node modules 中安装了所有的 Bower 包 现在我想将它们浏览到一个单独的供应商包中 并将它们声明为 外部 依赖项 我想给他
  • Angularjs - 将 True/False 显示为 Yes/No

    有没有一种简单的方法可以将真 假值显示为是 否 我正在从数据库检索包含以下内容的 JSON 对象 对象 WithCertification true 这是 HTML 有认证 elem WithCertification 正在显示这个 认证真
  • 为什么 Angular 2 项目如此大 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在用 ng2 重写 ng1 项目 我们的 ng1 项目构建后大约有 8mb 我们对 ng2 的重写已经完成了大约四分之一 并且我
  • 没有导出的成员/节点模块

    我刚刚开始使用 5 分钟快速入门找到的 Angular 2 Typescripthere https angular io docs ts latest quickstart html 我遇到了一个看起来很常见的问题 但可能有点不同 我遇到
  • 错误 11 秒后等待 Protractor 与页面同步超时

    我的量角器测试有问题 我的角度应用程序使用 timeout 不断从服务器轮询某些内容 不幸的是 当我运行测试时 这会导致以下错误消息 There was a webdriver error Error Timed out waiting f
  • 属性中的角度表达式

    我有一个使用 Angular 的页面 其中我从引导程序实现了弹出窗口 img class state msg 数据内容无法正确呈现 它按字面意思返回 item status message 而不是 message 的值 角度在 数据 属性中
  • 如何用 Jest 模拟 Sequelize?

    我正在尝试为调用 Sequelize 来创建数据库的代码编写单元测试 我一生都无法弄清楚如何模拟对 Sequelize 的调用 以便我可以断言他们已经正确创建了数据库表 我点击 Sequelize 的代码如下 import Sequeliz
  • TinyMCE 脏标志未设置或在编辑器离开后自动重置?

    配置 TinyMce 编辑器和一些功能后 如果用户进行了更改但没有保存 我现在想警告用户 为此 我正在检查 Blur 的脏标志 但它总是被设定的false 控制器 js this scope tinymceOptions selector
  • 如何让 Angular-Flask 应用加载 html 部分?

    我试图让我的 Angular Flask 应用程序在基本 html 文件中渲染部分 HTML 文件 应用程序加载基本 html 窗口标题和页脚加载 但 ng view 没有加载任何内容 也许我到局部的角度路由不正确 文件结构 gt flas
  • AngularJS with Grunt - 连接到另一台服务器

    我使用 grunt bower 和 yeoman 创建了一个 AngularJS 应用程序 我猜想 Gruntfile js 在 2014 年 1 月之后发生了变化 不确定 这是我的gruntfile js Generated on 201

随机推荐