我正在尝试学习 MongodB 的测试驱动方法。文件夹结构
A 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
content
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
(或具有相同内容的任何文件名)应首先运行。