这是链接chai.js's期望在守夜

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

本文关键字:期望 守夜 链接 chai js      更新时间:2023-09-26

我想在Nightwatch.js.中使用chai.js断言bdd库

它起作用了!我的代码看起来像:

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(…)时,就会发生这种情况,您必须再次使用浏览器/客户端/页面对象var才能再次开始链接。