Jest.js 如何防止模拟的外部库函数被内部调用

kuhbmx9i  于 11个月前  发布在  Jest
关注(0)|答案(1)|浏览(152)

我们最近将部分代码库迁移到了由lerna管理的共享包仓库中。
这个代码库的一部分包含我们的处理程序,commandHandlers,查询等。有时,为了解析请求,我们使用我们称为parseMultipartBody的东西。这需要请求具有Content-Type属性,所以我们在jest设置文件中模仿了它。
问题是,在另一个测试中,我们正在测试一个路由,它调用了一个使用相同方法的通用处理程序。问题是,由于它是在共享包中内部调用的,它不知道jest,因此要求Content-Type属性,导致我们的测试中出现级联错误。
那么,我们怎样才能设法“拦截”或阻止内部调用,而不模仿泛型处理程序呢?

des4xlb0

des4xlb01#

经过广泛的研究,似乎有某种解决办法jest至于什么是调用。模拟我尝试的目标是导出的函数,所以到模块的路径是@repo/handlers/utils
但是直接针对文件,在我的例子中是@repo/handlers/utils/router/parseMultipartBody,并模拟特定的函数使它工作。

相关问题