Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对控制器的快速路由器调用进行单元测试_Javascript_Node.js_Unit Testing_Express - Fatal编程技术网

Javascript 如何对控制器的快速路由器调用进行单元测试

Javascript 如何对控制器的快速路由器调用进行单元测试,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) => {

我只是尝试测试一旦请求get路由,userController就会被调用。我在StackOverflow上看到了其他几个问题,其中公认的答案是使用supertest,但解决方案通常感觉更像是集成测试,而不是单元测试

我是否认为这是错误的,Express routes不应该进行单元测试,而应该在编写集成测试时进行测试

任何帮助都将不胜感激

controller.js

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模块之间进行的
查看财务模块,模块是分类账和成本核算-该级别的集成测试在这些模块之间。因此,查看分类账,您有一个预订和报告模块,因此…

我们可以假设的唯一一件事是大多数程序员/开发人员普遍接受的,即单个简单的报告是一个单元,而其余的则是纯粹的定义和惯例,无论是在公认的标准水平上还是在组织制定的定义上。
无论您如何称呼它或您对它的感觉,唯一可以确定的是在交付应用程序之前对其进行测试。

因此,唯一给出“正确”答案的人是你(以及你的团队,如果有的话)