我有一个非常简单的 Sails.Js 应用程序,其中包含评论和发布模型。我使用编写了一些测试用例摩卡和柴。测试用例运行正常,但在运行任何测试之前我无法清除测试数据库。
/*Comment.js */
module.exports = {
attributes: {
comment: {type: 'string'},
timestamp: {type: 'datetime'}
}
};
CommentService有一个函数可以提供所有注释。
/*CommentService.js */
module.exports = {
getAllComments: function () {
return Comment.find()
}
};
bootstrap.js文件包含以下代码。我正在使用 MYSQL 数据库。 我在bootstrap.js中的数据库配置中假设它应该截断所有模式,但不确定为什么不发生这种情况。
var sails = require('sails');
var _ = require('lodash');
global.chai = require('chai');
global.should = chai.should();
before(function (done) {
// Increase the Mocha timeout so that Sails has enough time to lift.
this.timeout(10000);
sails.lift({
log: {
level: 'silent'
},
hooks: {
grunt: false
},
connections: {
// Replace the following with whatever suits you.
testMysql: {
adapter : 'sails-mysql',
host : 'localhost',
port : 3306,
user : 'root',
password : 'saroj990',
database : 'testDB'
}
},
models: {
connection: 'testMysql',
migrate: 'drop'
}
}, function (err, server) {
if (err) return done(err);
// here you can load fixtures, etc.
done(err, sails);
});
});
after(function (done) {
// here you can clear fixtures, etc.
if (sails && _.isFunction(sails.lower)) {
sails.lower(done);
}
});
CommentService.spec.js包含以下代码
//CommentService.spec.js
require('../../bootstrap');
describe('The PostService', function () {
before(function (done) {
Comment.create({comment: "This is a comment"})
.then(function(){
done()
})
.catch(function(err){
done(err);
});
});
it('should return all posts with their comments', function (done) {
CommentService
.getAllComments()
.then(function (comments) {
comments.should.be.an('array');
comments.should.have.length(1);
done();
})
.catch(done);
});
});
非常感谢任何帮助/指针。