代码之家  ›  专栏  ›  技术社区  ›  sarneeh

如何模拟集成测试的嵌套依赖关系

  •  3
  • sarneeh  · 技术社区  · 8 年前

    我想为我的服务器创建一个集成测试。不幸的是,有许多错误案例我无法涵盖,因为这取决于我的项目中某些依赖关系的失败。

    为了更容易地解释这个问题,请考虑以下项目:

    主要内容:

    const dep = require('./dep');
    
    module.exports = () => {
        return dep();
    }
    

    附属国:

    const uuid = require('uuid/v4');
    
    module.exports = () => {
        return uuid();
    }
    

    测试:

    const t = require('tap');
    
    const subject = require('./subject');
    
    t.test('should return 12345', t => {
      // mock uuid/v4 module to return 12345
    
      const result = subject();
    
      t.equal(result, '12345');
      t.end();
    });
    

    这是一个1级深度依赖的情况,但是请考虑 dependency 再深5层。

    所以我带着几个问题来这里:

    1. 我怎样才能达到嘲笑的目的呢 你真的很投入吗?

    重要提示:

    我试过无数的嘲弄图书馆( mock-require proxyquire , rewire testdouble mockery )但是他们中没有一个是考虑集成测试的(他们更关注单元测试)。

    很想听你的回答!

    0 回复  |  直到 8 年前