这是一种在守夜人中链接 chai.js 期望的方法吗

Is it a way to chaining chai.js's expects in nightwatch

我想使用 chai.js assertion bdd library with Nightwatch.js

有效!我的代码如下所示:

var expect = require('chai').expect

module.exports = {
  'Login' : function (browser) {
    var login = browser.page.login()
    login.expect.element('@login').to.not.be.enabled
    login.setValue('@email', 'some@some.com')
    login.setValue('@password', 'pass')
    login.expect.element('@login').to.be.enabled
    login.click('@login')
    login.end()
  }
}

但是。 Nightwatch 为自己的方法提供了非常流畅的接口,使您能够链接 browser.setValue('...', '...').click('...').end().

等方法

问题:如果我使用 chaijs,我可以实现方法链接吗?

说明,我要的是:

module.exports = {
  'Login' : function (browser) {
    var login = browser.page.login()

    login.expect.element('@login').to.not.be.enabled
    .setValue('@email', 'some@some.com')
    .setValue('@password', 'pass')
    .expect.element('@login').to.be.enabled
    .click('@login')
    .end()
  }
}

我可以让我的测试看起来像上面的代码吗?

为了使用多重期望,你必须这样做:

module.exports = {
'Login' : function (browser) {
    var login = browser.page.login()

    login.expect.element('@login').to.not.be.enabled
    login
        .setValue('@email', 'some@some.com')
        .setValue('@password', 'pass')
        .expect.element('@login').to.be.enabled
    login    
        .click('@login')
    .end()
    }
}

当您在测试中或在页面对象中的自定义函数中使用 .expect(...) 时会发生这种情况,您必须再次使用 browser/client/page 对象变量以再次开始链接。