摩卡测试:在需要时避免使用'../../'

时间:2017-06-30 13:34:41

标签: node.js mocha require

我的文件夹结构是:

/backend/services/service.js
/test/backend/services/service.js

在每项服务测试中,我使用以下内容:

var service = require('../../../backend/services/service')

是否有更优雅的方式自动要求文件具有相同的路径,只有test文件夹?也许以某种方式使用mocha.opts

1 个答案:

答案 0 :(得分:0)

我可以给你一个解决方案,我使用的有点hacky。我有一个/test/__bootstrap.test.js文件,我在其中创建了一个仅用于测试的全局testRequire()函数:

// Creation of a wrapper to avoid ../../../.. using require()
global.testRequire = function(name) {
  return require(path.join(__dirname, '..', name));
};

然后在/test/backend/services/service.js我使用testRequire()代替require()

var service =  = testRequire('backend/services/service');