Javascript 如何对控制器的快速路由器调用进行单元测试
我只是尝试测试一旦请求get路由,userController就会被调用。我在StackOverflow上看到了其他几个问题,其中公认的答案是使用supertest,但解决方案通常感觉更像是集成测试,而不是单元测试 我是否认为这是错误的,Express routes不应该进行单元测试,而应该在编写集成测试时进行测试 任何帮助都将不胜感激 controller.jsJavascript 如何对控制器的快速路由器调用进行单元测试,javascript,node.js,unit-testing,express,Javascript,Node.js,Unit Testing,Express,我只是尝试测试一旦请求get路由,userController就会被调用。我在StackOverflow上看到了其他几个问题,其中公认的答案是使用supertest,但解决方案通常感觉更像是集成测试,而不是单元测试 我是否认为这是错误的,Express routes不应该进行单元测试,而应该在编写集成测试时进行测试 任何帮助都将不胜感激 controller.js const userController = { get: (req, res, next) => {
const userController = {
get: (req, res, next) => {
return res.status(200).json('hiding get request from controller')
}
}
export default userController
routes.js
import express from 'express';
import userController from '../controllers/users';
const userRouter = express.Router();
userRouter.get('/', userController.get)
export default userRouter;
如果您阅读了它声明:超级代理驱动库,用于使用fluent API测试node.js HTTP服务器。
因此您可以将其用于ubit测试和集成测试。这甚至在学术层面上也是一个有争议的讨论。作为一种想法: 单元测试是一种测试方法,通过这种方法,源代码的各个单元 测试代码以确定它们是否可以使用,而 集成测试检查软件模块之间的集成 问题开始了
例如,以由不同模块(财务、销售、CRM等)组成的ERP系统为例
如果从较高的层次来看,这些都是模块,并且从系统架构师的角度来看,集成测试是在财务和CRM模块之间进行的
查看财务模块,模块是分类账和成本核算-该级别的集成测试在这些模块之间。因此,查看分类账,您有一个预订和报告模块,因此…
我们可以假设的唯一一件事是大多数程序员/开发人员普遍接受的,即单个简单的报告是一个单元,而其余的则是纯粹的定义和惯例,无论是在公认的标准水平上还是在组织制定的定义上。
无论您如何称呼它或您对它的感觉,唯一可以确定的是在交付应用程序之前对其进行测试。
因此,唯一给出“正确”答案的人是你(以及你的团队,如果有的话)