javascript - 如何测试函数是否使用 async 关键字调用

标签 javascript vue.js testing jestjs vuejs3

我想为我的 vue3 应用程序编写一个简单的测试,测试应该断言 具体功能 (在这种情况下为 updateRoute)声明为 异步 在不同的组件中
注意:根据我当前的项目,我无法将此功能隔离在单个文件中以使其可重用
例子:

const updateRoute = () => { doSomethig() }
应该 失败
尽管
const updateRoute = async () => { await doSomethig() }
应该 通过
测试库无关紧要,可以是 Jest 或其他任何东西

最佳答案

no reliable way and no reason检测 async功能。对于返回 promise 的函数,它与以下内容相同:

const updateRoute = () => {
  return doSomethig().then(() => {}) // Returns a promise of undefined
}
应该测试updateRoute返回一个 promise ,带有 async或不。在 Jest 中是:
expect(updateRoute()).toEqual(expect.any(Promise));
至于必填await , 这可以用 ESLint require-await rule 处理如有必要。

关于javascript - 如何测试函数是否使用 async 关键字调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70015672/

相关文章:

javascript - 如何让 javascript eval 返回字符串而不是变量?

javascript - Node js : alert on database update

javascript - 如何在 Highcharts 中获取当前钻取的 ID

javascript - VueJS mustache 数据绑定(bind)不起作用。我该如何调试这个?

php - 将数据库日期格式化为 AM/PM 时间 (vue)

perl - Test::More 不知道 test 是否死亡 - 那么我该如何测试?

javascript - 如何通过将 0 附加到个位数数字来格式化数字?

javascript - vuejs 从子组件更新父数据

ruby - Minitest 警告 : DEPRECATED global use of must_match. 使用 `_(obj)`

java - 在gradle测试中看不到真正的异常