为vue-multiselect编写单元测试

时间:2017-03-23 16:31:10

标签: javascript unit-testing vue.js vuejs2

我正在尝试研究如何为vue-multiselect编写测试并遇到问题。

具体来说,我试图“点击”输入以打开下拉列表(然后选择一个选项),但是没有任何工作

我试过了

vm.$el.querySelector('.multiselect').click()

并在浏览器中:

document.querySelector('.multiselect').click()

以及许多其他组合,但没有任何工作。

对于一个强调它的测试覆盖范围的图书馆而言,并不是要提供在单元测试中使用它的文档(我可以找到如何)。

1 个答案:

答案 0 :(得分:0)

最后这项工作正常,关键是element.sendKeys('admin'); element.sendKeys(protractor.Key.ENTER); 而不是.dispatchEvent(new window.Event('focus'))

最终测试的相关部分:

.focus()

(注意我的组件更改了expect(vm.$el.querySelectorAll('input')).to.have.lengthOf(1) vm.$el.querySelector('.multiselect').dispatchEvent(new window.Event('focus')) await tick() const s = vm.$el.querySelectorAll('.multiselect__element')[2].querySelector('span') expect(s.innerText).to.equal('Science') s.dispatchEvent(new window.Event('mousedown')) await tick() expect(routes_visited).to.deep.equal(['/s/3-science']) vm.$el.querySelector('.cross').click() await tick() expect(routes_visited).to.deep.equal(['/s/3-science', '/']) 路由,因此我{{}} {{}}路由并在测试中推入vue-router以跟踪更改。)