Я хочу проверить el-button
, может ли он измениться на правильный вид на $router
, но я не совсем понимаю, поддерживается ли trigger
, потому что я нахожу это в его документе
Метод trigger
принимает объект параметров optional
.Свойства в объекте параметров добавляются в событие.
Обратите внимание, что цель не может быть добавлена в объект options
.
const wrapper = mount(MyButton)
wrapper.trigger('click', {
button: 0
})
, но не удалось, и я получил эту информацию
TypeError: Невозможно установить тип свойства [объект Event], который имеет только получатель
65 | // expect(mockFn).toBeCalled
66 | // expect(mockFn).toBeCalledTimes(1)
67 | wrapper.find(ElementUI.Button).trigger('click', {
| ^
68 | id: 1,
69 | type: 'view'
70 | })
vue file
<el-button
plain
type="primary"
@click="changeView(-1, 'edit')">
newPicture
</el-button>
js
changeView(id, type) {
if (type === 'view') {
this.$router.push({ path: './detail', query: { id, type }})
} else if (type === 'edit') {
this.$router.push({ path: './edit', query: { id, type }})
}
},
И я хочу написать тестовый файл для этой кнопки
...
it('add button click', () => {
const mockFn = jest.fn()
wrapper.setMethods({
changeView: mockFn
})
wrapper.find(ElementUI.Button).trigger('click', {
id: 1,
type: 'view'
})
wrapper.update()
expect(mockFn).toBeCalled
console.log(wrapper.vm.$route.path)
})
...
Как я могу это исправить?