我想为我的服务器创建一个集成测试。不幸的是,有许多错误案例我无法涵盖,因为这取决于我的项目中某些依赖关系的失败。
为了更容易地解释这个问题,请考虑以下项目:
主要内容:
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层。
所以我带着几个问题来这里:
-
我怎样才能达到嘲笑的目的呢
你真的很投入吗?
-
重要提示:
我试过无数的嘲弄图书馆(
mock-require
proxyquire
,
rewire
testdouble
mockery
)但是他们中没有一个是考虑集成测试的(他们更关注单元测试)。
很想听你的回答!