【发布时间】:2014-05-10 02:00:20
【问题描述】:
我正在创建一个单元测试来测试 Passport,第一步是创建一个用户。创建用户超时,测试无法进行。
测试(login.js):
'use strict';
var app = require('../index'),
kraken = require('kraken-js'),
mongoose = require('mongoose'),
User = mongoose.model('User'),
should = require('chai').should(),
Q = require('q'),
agent = require('supertest'),
cookie,
pUser = {
firstName: 'pasport-test',
lastName: 'user',
userName: 'passport-user',
email: 'passport-user@here.com',
password: 'h@rdP@ssw0rd'
}
describe('#create user and log them in with passport', function () {
this.timeout(10000);
var mock;
beforeEach(function (done) {
kraken.create(app).listen(function (err, server) {
mock = server;
done(err);
});
});
afterEach(function (done) {
mock.close(done);
});
describe('#login the user', function () {
it('should create a user', function (done) {
var user = new User({
firstName: pUser.firstName,
lastName: pUser.lastName,
userName: pUser.userName,
email: pUser.email,
password: pUser.password
});
user.save(function(err, data) {
if(err) {
done(err);
} else {
done();
}
});
//it should then login that user with passport
});
});
如果我直接将 o 连接到猫鼬:
mongoose.connect("mongodb://localhost/testing");
并以这种方式要求用户:
User = require('../models/user');
有效。
我想使用beforeEach 与 kraken 建立的服务器和连接,以便在配置的数据库中进行插入...
问题是为什么猫鼬插入物在测试中永远不会回来?
【问题讨论】:
-
我不清楚你的意思...我假设没有调用传递给
user.save的回调,因此测试超时。我说的对吗?
标签: node.js mongoose mocha.js passport.js kraken.js