我正在尝试研究如何为vue-multiselect编写测试并遇到问题。
具体来说,我试图“点击”输入以打开下拉列表(然后选择一个选项),但是没有任何工作
我试过了
vm.$el.querySelector('.multiselect').click()
并在浏览器中:
document.querySelector('.multiselect').click()
以及许多其他组合,但没有任何工作。
对于一个强调它的测试覆盖范围的图书馆而言,并不是要提供在单元测试中使用它的文档(我可以找到如何)。
答案 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
以跟踪更改。)