在帆测试中装载夹具

时间:2015-06-04 06:03:29

标签: node.js testing sails.js

docs只是说

// here you can load fixtures, etc.

我已经知道我可以加入

var fixtures = require('./fixtures/models.js');

在引导脚本中,因此完整的引导脚本是:

/*
 * Lifts Sails before testing comenses.
 */

var Sails = require('sails');
var sails;

before(function(done) {
  this.timeout(5000);

  Sails.lift({
    // configuration for testing purposes
    environment: 'test',
  }, function(err, server) {
    sails = server;
    if (err) {
      return done(err);
    }

    // here you can load fixtures, etc.
    var fixtures = require('./fixtures/models.js');
    done(err, sails);
  });
});

after(function(done) {
  // here you can clear fixtures, etc.
  Sails.lower(done);
});

然后我可以在引导脚本中引用fixtures var,但我无法在测试中引用它。我只是未定义。

1 个答案:

答案 0 :(得分:1)

我使用Barrels

该软件包可帮助将文件中的夹具加载到DB中(无论您选择哪种DB) 您可以选择加载它们的顺序(填充关联)

要在测试中加载灯具,我会在测试文件的顶部添加:

var Barrels = require('barrels');
var barrels = new Barrels(process.cwd()+'/tests/fixtures');
var fixtures = barrels.data;

之后在测试中我更喜欢在测试之前将数据库表重置为灯具......就像这样:

before(function (done) {
      barrels.populate(['users', 'categories', 'products'], function (err) {
        if (err) return done(err);

        done();
      });
});

那就是它。您已填充数据库。 这个过程会触发“创造”的所有事件。在所有模型上,你也可以测试它。

您可以使用我的该软件包版本,其中包含mongodb ID支持: https://github.com/stuk88/barrels

以下是有关如何在帆中测试的完整指南: https://github.com/bredikhin/sailsjs-mocha-testing-barrels-fixtures-example