测试要调用的vue组件的功能的想法是:
-
使用创建测试组件
vue-test-utils
mount
shallowMount
.
-
methods
中的参数
options
提供间谍。
-
在调用监视方法的组件中执行操作,然后断言该方法确实被调用。
我没有
sinon
jest
,但事情应该是这样的:
import NavBar from '@/components/layout/NavBar.vue'
import {shallowMount} from 'vue-test-utils';
it('asserting onSubmit calls', () => {
// given
var onSubmit = sinon.spy();
var wrapper = shallowMount(NavBar, {
methods: {
onSubmit();
}
});
var vm = wrapper.vm;
// when
vm.onSubmit();
// then (I dont really dont know if this is valid sinon syntax)
assertTrue(onSubmit.called);
// or, with jest syntax:
// expect(onSubmit).toHaveBeenCalled();
})
应该有用
onSubmit
,和
提交
您的测试可能需要断言如下内容:
什么时候
这个
<b-nav-form>
组件发出
submit
然后
这个
提交
间谍被叫来了。
-
因为涉及子组件。在
vue测试用例
攀登
而不是
. 这很困难,因为您需要提供子级道具和依赖项,所以请习惯于
shallowMount and mount differences
.
-
当您开始测试事件时,可能涉及到一些同步性,因此您需要等待事件传播并调用组件方法。这通常涉及通过
done
回拨到
it()