我正在尝试为使用Jest在节点中构建的命令行工具获得一些测试覆盖率。我的代码以模块形式分割,其中大多数都有我试图模拟的异步http请求。我想知道是否有办法模拟模块函数中存在的这些请求?
module.exports = function() {
client.apiGet() // How do I mock this?
.then(() => {
// more logic, runs several fs operations
})
.catch((err) => { console.error(err) });
}
答案 0 :(得分:0)
您将需要模拟client
模块。我假设您有require
或import
了。模拟完成后,您可以决定对所有方法的实现进行存根,也可以仅对apiGet
进行存根。
https://jestjs.io/docs/en/manual-mocks。
最后,您可能会使用.resolves
和.rejects
来获得正确的期望。
https://jestjs.io/docs/en/expect#resolves
@Koen Van Gilst写了一个很棒的博客,讲述了用Jest模拟API的调用: https://hackernoon.com/api-testing-with-jest-d1ab74005c0a
希望这会向正确的方向发送