使用Nightwatch无法在Chai.js中使用期望

问题描述 投票:1回答:1

我用Nightwatch构建了简单的e2e测试。这个简单的e2e测试成功通过。 接下来,我构建第二个测试以使用Chai.js / Mocha.js。但是这个测试引起了例外。

// First(successfully passed)
module.exports = {
  'increment counter': browser => {
    browser
      .url(process.env.VUE_DEV_SERVER_URL)
      .click("button#plus-btn")
      .assert.containsText('h1', '1')
      .end()
  },
  "decrement counter": browser => {
    browser
      .url(process.env.VUE_DEV_SERVER_URL)
      .click("button#minus-btn")
      .assert.containsText('h1', '-1')
      .end()
  }
}
// Second
describe('counter testing', () => {

  describe('press plus button', () => {

    it('increments counter', (browser) => {
      browser
        .url(process.env.VUE_DEV_SERVER_URL)
        .click("button#plus-btn")
        .expect.element('h1').text.to.equal('1')
        .end()
    })
  })

  describe('press minus button', () => {

    it('decrements counter', (browser) => {
      browser
        .url(process.env.VUE_DEV_SERVER_URL)
        .click("button#minus-btn")
        .expect.element('h1').text.to.equal('-1')
        .end()
    })
  })
})

异常消息

TypeError: browser.url(...).click(...).expect.element(...).text.to.equal(...).end is not a function

接下来我该怎么办?

javascript chai nightwatch.js
1个回答
1
投票

根据docs,当使用end进行断言时,你应该以不同的方式调用expect。我认为这是因为expect方式基于chai。将测试更改为这样可行

it("increments counter", browser => {
  browser
    .url(process.env.VUE_DEV_SERVER_URL)
    .click("button#plus-btn")
    .expect.element("h1")
    .text.to.equal("1");
  // See how end is called differently
  browser.end();
});
© www.soinside.com 2019 - 2024. All rights reserved.