您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

是否可以通过带有“伪造”请求的代码直接调用Express Router?

是否可以通过带有“伪造”请求的代码直接调用Express Router?

路由器具有名为“私有”方法的名称handle,该方法接受请求,响应和回调。您可以看一下Express对其Router进行的测试。一个例子是:

it('should support .use of other routers', function(done){
    var router = new Router();
    var another = new Router();

    another.get('/bar', function(req, res){
      res.end();
    });
    router.use('/foo', another);

    router.handle({ url: '/foo/bar', method: 'GET' }, { end: done });
  });

Express团队使用SuperTest路由器上执行集成测试。据我了解,SuperTest仍在使用网络,但它们会为您处理所有这些,因此其行为就像测试全部在内存中一样。SuperTest似乎确实被广泛使用,并且是一种可接受的测试路线的方法

顺便说一句,您没有说您要测试的内容,但是如果您的目标是测试某些路由,那么SuperTest的替代方法可能是将路由中的逻辑提取一个单独的模块中,该模块可以独立于Express进行测试。

更改:

routes
|
-- index.js

至:

routes
|
-- index.js
|
controllers
|
-- myCustomController.js

然后,测试可以简单地针对myCustomController.js并注入任何必要的依赖项。

其他 2022/1/1 18:13:49 有694人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶