使用Jest测试node.js命令行工具

时间:2018-03-05 18:43:46

标签: javascript nodes jestjs

我正在尝试为使用Jest在节点中构建的命令行工具获得一些测试覆盖率。我的代码以模块形式分割,其中大多数都有我试图模拟的异步http请求。我想知道是否有办法模拟模块函数中存在的这些请求?

module.exports = function() {
  client.apiGet() // How do I mock this?
    .then(() => {
      // more logic, runs several fs operations
    })
    .catch((err) => { console.error(err) });
} 

1 个答案:

答案 0 :(得分:0)

您将需要模拟client模块。我假设您有requireimport了。模拟完成后,您可以决定对所有方法的实现进行存根,也可以仅对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

希望这会向正确的方向发送