【问题标题】:how to test if a string DON'T match using protractor如何使用量角器测试字符串是否不匹配
【发布时间】:2020-03-02 22:26:03
【问题描述】:

我正在将我的 karma-ng-scenario 测试套件迁移到量角器。我想做类似的事情

// karma-ng-scenario
expect(element('legend').text()).not().toBe("LOGIN_CONNECT");

以量角器的方式。但似乎没有not() 功能。

我正在使用angular-translate 将LONGIN_CONNECT 字符串绑定到多种语言,我想测试该字符串是否被翻译。

在全球范围内,是否有一种方法可以测试是否有所不同? ...没有类,页面上不存在,未被选中,...

【问题讨论】:

    标签: protractor angularjs-e2e


    【解决方案1】:

    API docs 绝对值得一看。我几乎一直都打开这些。 您可以使用许多 Web 驱动程序函数,例如 isEnabled()isDisplayed()isSelected() 等。Protractor 使用 Jasmine 语法,因此您可以使用 '.toBe(false)' 来断言事情是假的。 要检查课程,您可以执行以下操作:

    expect(myElement.getAttribute('class')).toContain('my-class-name');

    要比较字符串并断言它们不匹配,您可以使用.notJasmine docs 说:

    每个匹配器的条件都可以通过添加 .not 来反转:

    期望(x).not.toEqual(y);比较对象或基元 x 和 y 和 如果它们不相等则通过

    【讨论】:

    • 我的错!我在茉莉花、业力、量角器方面很新,还有很多东西要学……我混淆了not 茉莉花功能和not() 业力功能!它适用于 expect(web.findElement(by.tagName('legend')).getText()).not.toMatch("LOGIN_CONNECT");
    【解决方案2】:

    你可以使用类似的东西:

    expect(model.getText()).not.toContain('abcdef');
    

    现在有一个.not 属性。

    【讨论】:

    • 这是我的茉莉/量角器版本中最优雅的解决方案
    【解决方案3】:

    我正在使用以下内容来检查不匹配:

    expect(element('legend').text() === "LOGIN_CONNECT").toBe(false);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 2019-06-05
      • 2013-12-14
      • 2015-11-14
      • 1970-01-01
      • 2011-01-31
      相关资源
      最近更新 更多