使用jest测试vue组件中设置了debounce的函数
代码中用到了lodash.debounce来避免一些高频操作导致的函数在短时间内被反复执行,需要测试函数中包含的接口及参数。待测试代码如下:
// MyVueComponent.vue
import _ from 'lodash'
getPrice: _.debounce(function() {
myApi
.calculateApi({
params: {
key1: value1
},
data: {
params: {
key2: value2
}
}
})
.then(response => {
this.price = response.data.priceKey
})
}, 300)
需要测试下调用this.getPrice()函数的时候,myApi.calculateApi接口被正确调用。
踩了好多坑之后,有2种方法可测试成功。
1.借助mockdate插件,mock当前时间。
通过修改当前时间,达到定时设置时间,从而调用对应函数。
// MyVueComponent.spec.js
function getComponent(options = {}) {
return shallowMount(
MyVueComponent,
extend(
true,
{
propsData: {
props1: va