Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 呼叫';创建';Vue.js上Jest测试中的方法_Javascript_Unit Testing_Vue.js_Mocking_Jestjs - Fatal编程技术网

Javascript 呼叫';创建';Vue.js上Jest测试中的方法

Javascript 呼叫';创建';Vue.js上Jest测试中的方法,javascript,unit-testing,vue.js,mocking,jestjs,Javascript,Unit Testing,Vue.js,Mocking,Jestjs,我正在用Jest在vue.js上测试我的Activity.vue组件 MyActivity.vue组件调用created()中的initializeTable()方法来初始化我的tableRows属性 问题是,当我运行测试时,Jest不调用'created()'方法,因此,它不初始化我的tableRows属性,然后测试说我的tableRows属性等于[](原始状态) 当我使用Jest进行测试时,如何调用created()方法 我已经尝试在测试中显式地调用它(例如,wrapper.vm.$crea

我正在用Jest在vue.js上测试我的
Activity.vue
组件

My
Activity.vue
组件调用
created()
中的
initializeTable()
方法来初始化我的
tableRows
属性

问题是,当我运行测试时,Jest不调用'created()'方法,因此,它不初始化我的
tableRows
属性,然后测试说我的
tableRows
属性等于
[]
(原始状态)

当我使用Jest进行测试时,如何调用
created()
方法

我已经尝试在测试中显式地调用它(例如,
wrapper.vm.$created()
),但是没有用

有人知道怎么解决吗

我在下面给出我的代码

先谢谢你

Activity.spec.js

从'@vue/test-utils'导入{shallowMount}
从“@/views/Activity.vue”导入活动
从“@/assets/js/api”导入api
常量expectedTableRows=[…]
常量$t=()=>{}
api.getActivity=jest.fn(
承诺,决心({
数据:[……]
})
)
描述('Activity.vue',()=>{
它('在created()中呈现vm.tableRows',()=>{
常量包装=浅量(活动{
模拟:{$t}
})
//wrapper.vm.$created()
expect(wrapper.vm.tableRows).toEqual(expectedTableRows)
})
})
活动.vue

从“@/assets/js/api”导入api
导出默认值{
数据(){
返回{
表格行:[]
}
},
创建(){
this.initializeTable()
},
方法:{
初始化表(){
这是真的
api.getActivity().then(响应=>{
this.tableRows=response.data
}).catch(错误=>{
this.errorBackend=错误
}).最后(()=>{
此参数为0。加载=错误
})
}
}
}
编辑1:解决方案

正如Husam Ibrahim所描述的,该函数是异步的,因此,我需要使用以下代码重构测试,现在我能够修复它

我在下面给出正确的代码:

从“flush promises”导入flushPromises//{

它('renders wm.tableRows after created()',async()=>{//断言同步运行,而方法进行异步调用。你说得对。非常感谢。上帝保佑。