首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试传递性需要自身的nodejs模块

如何测试传递性需要自身的nodejs模块
EN

Stack Overflow用户
提问于 2019-03-22 13:54:08
回答 1查看 17关注 0票数 0

假设以下场景:

Rest客户端是一个模块,它有许多中间件;这些中间件本身就是模块。

现在,我们正在尝试创建一个新的中间件,它需要客户端本身来获取/更新客户端输入url的元数据。

测试此中间件将从npm注册表引入客户端的已发布版本,因为中间件在客户端上有一个devDependency。但我们想为我们的本地客户服务。

此外,发布的客户端版本不包含此新的中间件,因此不允许使用此中间件测试请求流水线。

当我们测试中间件本身以发送获取数据的请求时,我们希望使用此中间件启动客户端。

中间件足够智能,不会请求元数据的元数据,因此它将跳过第二次调用。新的流程应该如下图所示:

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 13:54:08

包装nodejs模块加载器,以便在测试执行过程中请求客户端时返回本地客户端,而不是发布的客户端。

代码语言:javascript
复制
describe(()=>{
  const localClient = require('../client');
  const m = require('module');
  const orig = m._load;

  before(()=>{
    m._load = function(name){
      if(name==='client'){
        return localClient;
      }
      return orig.appy(this, arguments)
    }
  });

  after(()=>{
    m._load = orig;
  });

  it('test goes here',()=>{...})
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55293657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档