vuejs2 - 如何模拟从已安装的生命周期方法触发的异步方法?
问题描述
我无法弄清楚如何模拟从mounted
生命周期方法调用的异步方法。我试图嘲笑UsersApi.getAllUsers()
.
//code.vue
mounted: async function () {
await UsersApi.getAllUsers().then(response => {
this.options = response.data
})
}
//code.test.js
import UsersApi from '@/api/users'
…
jest.mock('UsersApi')
UsersApi.getAllUsers.mockResolvedValue([
{
user_id: 123,
first_name: 'Abc',
last_name: 'Def'
}
])
…
输出:Cannot find module 'UsersApi' from 'code.spec.js'
该模块存在并且正在组件中使用。也许使用模拟不适合这个目的?
另一种选择是以某种方式抑制已安装的方法,这将起作用,因为无论如何我this.options
都是从测试中设置的。
编辑:这是getAllUsers
从哪里来的。
//users.js
export default {
async getAllUsers() {
…
},
async getUsers(payload) {
…
}
…
解决方案
推荐阅读
- javascript - 使用正则表达式,以时间格式分隔时间值
- javascript - 如何从 php 获取参数值到 Blade 模态弹出窗口?(Laravel 兰花)
- python - 在 matplotlib 3d 绘图中,plot_wireframe 中的参数 rcount、ccount、rstride 和 cstride 的意义是什么?
- c# - 字段 vs { get;set } vs { get=>field; set=>field = value;} - C# Unity
- javascript - 仅更改所有图像的不透明度,悬停的一张除外
- xml - 我想要一个逐对的节点列表,在这些节点上迭代而不是连接的文本节点
- c# - 在 C# 中检测类似于 Spy++ Visual Studio 2017 的标题
- typescript - 检测 jsdoc 错误并提交失败
- python - 检查列并乘以其他不同的长度
- redis - 如何知道有多少客户端连接到redis流