Sails JS:单元测试通用服务器引导程序文件

时间:2014-05-02 17:13:19

标签: express mocha sails.js

我正在使用Mocha(以及supertest,应该等......)

我正在测试以下控制器和模型(示例): Controller1,Controller2,Model1,Model2。

我将测试保存在

  • ./测试/控制器/ controller1.js
  • ./测试/控制器/ controller2.js
  • ./测试/模型/ model1.js
  • ./测试/模型/ model2.js

**问题:**

在每个测试文件中,我使用 before()来引导sails服务器以及其他配置。

但我觉得这不是一个好习惯,因为我不想在每个测试文件中引导服务器,必须有一个./test/bootstrap.js文件,在其他测试之间共享服务器。

怎么做?

这是一个好习惯,还是应该继续使用当前的实施?

2 个答案:

答案 0 :(得分:1)

这种做法很好。这就是我们如何做很多core Sails integration tests!只需确保在测试运行后使用after()方法降低Sails实例。如果您发现自己使用lift函数的一组通用配置选项,您可能还希望将服务器提升代码抽象为帮助文件。

答案 1 :(得分:1)

我知道这很晚了,但我也在努力解决这个问题,因为我的应用程序中有许多测试套件意味着每个套件都增加了降低应用程序的时间,并增加了测试的总花费时间。

但是我发现如果我以这种方式在第一个套件中取出应用程序:

before(function(done) {
    Sails.lift({}, function (err, server) {
      if (err) throw err; // or handle it
      sails = server;
      dbInitStuff(function callback() {
        done(null, sails);
      });
    });
  });

在之后我没有降低风帆:

after(function(done) {
    //sails.lower(done);
    done();
  });

当代码到达第二套房时,它识别出一个全球性的风帆'变量,它是对第一个套件中初始化并且保持相同状态的风帆的引用。我能够以这种方式运行测试,直到最后一个降低风帆的套件。

可能不是一个好的做法,但它在我的案例中做了伎俩。