SailsJS应用中用于单元测试的全局变量

Global variables for unit tests in SailsJS app

本文关键字:全局变量 单元测试 用于 应用 SailsJS      更新时间:2023-09-26

我正在制作一个Sails应用程序,对于我的单元测试,我需要在。/test/bootstrap.test.js和。/test/unit/controllers/*.test.js中使用一些变量。我考虑全局变量,但我如何创建它们?

我可以创建类似。/config/mydatatest.js这样的东西:

module.exports.myconf = {    
    anyobject: {
      bar: "foo"
    }
};

但是有没有办法在测试目录中创建mydatatest.js呢?

我喜欢将测试视为像开发生产那样的特定环境的想法。您可以创建一个特定于环境的文件 config/env/test.js 来放置配置:

/**
 * Test environment settings
 */
module.exports = {  
  myconf: {
    anyobject: {
      bar: "foo"
    }
  }
};

然后,可以将NODE_ENV=test添加到启动测试的命令中(基于文档中的示例)

"scripts": {
  "start": "node app.js",
  "debug": "node debug app.js",
  "test": "NODE_ENV=test mocha test/bootstrap.test.js test/unit/**/*.test.js"
},

在运行测试时,我使用此技术来使用sails-memory适配器。

如何将其插入您的bootstrap.test.js ?

before(function (done) {
  Sails.lift({
    port       : 5031,
    log        : {
      level: 'error'
    },
    myconf     : {
      anyobject: {
        bar: "foo"
      }
    }
  }, function (err, server) {
    sails = server;
    done(err);
  });
});

基本上可以。如果你想把它们放在单独的文件/文件夹中,只需要它们在你的bootstrap.test.js里面你的myconf像我的例子。