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,但我无法在测试中引用它。我只是未定义。
答案 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