对于我的sails应用程序,我使用以下代码对User模型进行单元测试,但收到错误消息:
'TypeError:Object#没有方法'create''
var User = require('../../api/models/User');
var Sails = require('sails');
console.log(User);
describe("User Model:", function() {
// create a variable to hold the instantiated sails server
var app;
// Global before hook
before(function(done) {
// Lift Sails and start the server
Sails.lift({
log: {
level: 'error'
},
}, function(err, sails) {
app = sails;
done(err, sails);
});
});
// Global after hook
after(function(done) {
app.lower(done);
});
describe("Password encryption", function() {
describe("for a new user", function() {
var user;
before(function (cb) {
var userData = {
email: "testuser@sails.com",
password: "test_password",
passwordConfirmation: "test_password"
};
User.create(userData, function (err, newUser) {
if (err) return cb(err);
user = newUser;
cb();
});
});
it("must encrypt the password", function() {
user.must.have.property('encryptedPassword');
user.must.not.have.property('password');
user.must.not.have.property('passwordConfirmation');
});
after(function (cb){
user.destroy(function (err) {
cb(err);
});
});
});
在我看来,帆被正确解除了,导致创造方法不可用的问题是什么?
答案 0 :(得分:14)
删除第一行:
var User = require('../../api/models/User');
解除Sails应用后,您将自动提供模型,例如,请参阅here。
在您的情况下,您的第一行会覆盖由{Sails.js构建的User
模型,这就是为什么即使您有一个对象,它也不是Waterline模型。