【发布时间】:2021-02-24 15:21:12
【问题描述】:
我试图在我的Test 组件中调用close() 方法,但只有在该指令启用的div 外部单击时才会触发它。我应该在测试中做些什么来确保该方法被触发?我在我的组件中使用v-click-outside npm 包。
组件
<script>
import vClickOutside from 'v-click-outside';
export default {
name: 'Test',
directives: {
vClickOutside,
},
data: () => ({
isOpen: false,
}),
methods: {
close() {
this.isOpen = false;
},
};
</script>
<template>
<div
v-click-outside="close"
class="test-class"
>
<OtherComponent />
</div>
</template>
这是我的测试文件。
const clickOutsidelDirective = jest.fn();
describe('Test.vue', () => {
const wrapper = shallowMount(Component, {
directives: {
clickOutside: clickOutsidelDirective,
},
});
wrapper.find('.test-class').trigger('click');
//not sure what i have to do to mock the close() function
//This doesn't get called
expect(clickOutsidelDirective).toHaveBeenCalled();
}
【问题讨论】:
标签: javascript vue.js vuejs2 jestjs vue-test-utils