【发布时间】:2019-05-28 04:17:40
【问题描述】:
我正在使用 nodeJS/mocha/mongoose 运行异步测试,当我运行如下测试时,我的集合中不断收到重复的文档。
const assert = require('assert');
const User = require('../src/user');
describe('Duplicates records test', () => {
beforeEach((done) => {
let user = new User({ name: 'Bob'});
user.save()
.then(() => done());
});
it('Return users named Bob', (done) => {
User.find({ name: 'Bob' })
.then((users) => {
console.log(users);
done();
});
});
});
以下是我正在使用的模型:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const UserSchema = new Schema({
name: String
});
const User = mongoose.model('user', UserSchema);
module.exports = User;
以下是运行测试的输出:
[ { _id: 5c918ca6d4b6eb4416312226, name: 'Bob', __v: 0 },
{ _id: 5c918ca6c2589d4415a4317a, name: 'Bob', __v: 0 } ]
1 passing (2s)
最后是 mongodb 的输出:
> db.users.find().pretty()
{ "_id" : ObjectId("5c918ca6d4b6eb4416312226"), "name" : "Bob", "__v" : 0 }
{ "_id" : ObjectId("5c918ca6c2589d4415a4317a"), "name" : "Bob", "__v" : 0 }
我的套件中有几个这样的测试,这似乎只有在我将记录保存在 beforeEach 语句中时才会发生。任何关于为什么会发生这种情况的见解将不胜感激。
【问题讨论】:
标签: node.js