我用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
接下来我该怎么办?
根据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();
});