无法在 Chai.js 中将期望与 Nightwatch 一起使用
Cannot use expectation in Chai.js with Nightwatch
我用 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,在使用 expect
进行断言时,您应该以不同的方式调用 end
。我认为这是因为 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();
});
我用 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,在使用 expect
进行断言时,您应该以不同的方式调用 end
。我认为这是因为 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();
});