【发布时间】:2017-04-05 10:59:06
【问题描述】:
我正在尝试使用 MongodB 学习测试驱动方法。文件夹结构
一个user.js在src文件夹中测试
const mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
const Schema = mongoose.Schema;
const UserSchema = new Schema ({
name: String
});
const User = mongoose.model('user', UserSchema);
module.exports = User;
test_helper.js的内容
const mongoose = require('mongoose');;
mongoose.connect('mongodb://localhost/users_test');
mongoose.connection
.once('open', () => {
console.log('Connected to Mongo!');
done()})
.on('error', (error) => {
console.warn('Warning', error);
});
create_test.js内容
const assert = require('assert');
const User = require('../src/user');
describe('Creating records', () => {
it('Saves a user', (done) => {
const user = new User({ name: 'Ankur' });
user.save()
.then(() => {
assert(!user.isNew);
done();
});
现在当我运行npm test 时,测试通过了。
Connected to Mongo!
Creating records
√ Saves a user (779ms)
但我怀疑Mocha 是如何知道每次都先运行test_helper.js 文件的。 (将此文件命名为任何其他名称也不会改变行为)。
另外,我没有使用任何根级挂钩。
我知道 mocha 在每个目录中递归加载文件,从根目录开始,因为这里的所有内容都只是一个目录,所以在这里没有任何区别。
有人可以建议或帮助,Mocha 是如何确切知道应该首先运行test_helper.js(或任何具有相同内容的文件名)。
【问题讨论】:
标签: javascript node.js mongodb testing mocha.js