Testing Node.js API with Jest



我需要为我的Node.js API实现单元测试。在API中,我只使用普通的Node.js。测试框架是Jest。我现在有测试,但它们都要求服务器在运行测试之前启动(我使用超测试)。

所以问题是我如何测试API端点而不实际运行服务器?

那么问题是我如何在不实际运行服务器的情况下测试API端点?

我会用nock。它是一个用于Node.js的HTTP服务器模拟库。

Nock可用于测试隔离执行HTTP请求的模块。

请参阅用法文档。

const nock = require('nock')
const scope = nock('https://api.github.com')
.get('/repos/atom/atom/license')
.reply(200, {
license: {
key: 'mit',
name: 'MIT License',
spdx_id: 'MIT',
url: 'https://api.github.com/licenses/mit',
node_id: 'MDc6TGljZW5zZTEz',
},
})

基本上你为一个给定的URL创建一个模拟作用域,然后任何向模拟作用域发出HTTP请求的测试都将被nock拦截。

你可能想在beforeAllbeforeEachJest块中设置你的模拟作用域。

最新更新