如何用 jest 测试路由和端点

Wol*_*Tru 5 javascript tdd jestjs

我今天刚开始学习 jest,我读到你不应该访问实际的 api 端点,因为它很慢,或者它不是标准做法。相反,您创建了代表您将返回的数据的模拟?

如果测试路线的目的是看看它是否有效,那么模拟数据就不会破坏目的。我想我只是对所有初学者指南感到困惑,而 Jest 文档有点超出我的理解。

我的问题是我是否应该测试我的节点服务器的路由文件,以及我将如何测试我的节点服务器的路由文件。如果我的路线是这样的:

// routes.js
const express = require('express');
const router = express.Router();
const axios = require('axios')

// my backend is connected to another api in this project
router.get('/', (req,res) => {
  axios.get('https://jsonplaceholder.typicode.com/users/1').then(data => res.json(data.data))
})
Run Code Online (Sandbox Code Playgroud)

请我阅读了它没有帮助的文档,你能给我一个具体的例子吗

Mat*_*gan 3

那些说“你不应该访问实际的 api 端点,因为它很慢,或者这不是标准做法......”的人试图阻止你做的是测试外部服务的接口。

Jest 用于单元测试,而不是端到端或集成测试。测试第三方 API,甚至是不是您正在构建的应用程序中的 API,超出了单元测试的范围。

您所询问的实际上是一个集成测试,并且此 StackOverflow 线程上有一个答案,可能对您测试 Node 或 Express 应用程序有帮助。