【问题标题】:Test save method with Mocha in Mongoose在 Mongoose 中使用 Mocha 测试保存方法
【发布时间】:2015-01-04 04:36:58
【问题描述】:

我正在编写一个基本的 Mocha 测试。我尝试创建一个用户并将其保存到数据库中。

var should      = require('should');
var User        = require('../../models/User.js');
require('../utils');

var testAccount = new User({
    local:{
        email: 'test@gmail.com',
        password: 'a'
}});

describe('request', function() {
    describe('request', function() {
        it('should create users', function(done) {
            testAccount.save(function(err, user){
                should.not.exist(err);
                done();
            });
        });
        it('should list users', function(done) {
            User.find({}, function(err, users){
                should.not.exist(err);
                users.length.should.equal(1);
                done();
            });
        });
    });
});

utils.js是一个简单的js文件,保证连接数据库

var dbURI     = 'dburi';
var mongoose  = require('mongoose');
var clearDB   = require('mocha-mongoose')(dbURI);

beforeEach(function (done) {
  if (mongoose.connection.readyState === 0) {
    mongoose.connect(dbURI, function (err) {
      if (err) {
        throw err;
      }
      return done();
    });
  } 
  else {
    return done();
  }
});

afterEach(function (done) {
  mongoose.disconnect();
  return done();
});

Mocha 不会为 save 方法抛出任何错误,即使它没有保存用户(我还检查了数据库)。我错过了什么吗?

  1 passing (67ms)
  1 failing
  1) request request should list users:
  Uncaught AssertionError: expected 0 to be 1
  + expected - actual
  +1
  -0

【问题讨论】:

    标签: node.js mongodb mongoose mocha.js


    【解决方案1】:

    我想通了。我需要在每次测试之前清除数据库的mocha-mongoose 模块。

    【讨论】:

      猜你喜欢
      • 2015-05-11
      • 2013-08-12
      • 1970-01-01
      • 2016-01-08
      • 2015-11-01
      • 2015-05-01
      • 2016-11-19
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多