我想在我的Express App的API路线上运行测试。我使用Mongoose和它的Schema进行数据库操作。这是我的测试设置(它首先成功运行,但在重新加载时失败...):
const request = require('supertest');
// this loads the whole express app
const app = require('../../server');
describe('[Auth]', function () {
it('returns 401 with invalid credentials', function (done) {
request(app)
.post('/auth/login')
.field('email', 'invalidMail')
.field('password', 'invalidPassword')
.expect('Content-Type', contentType)
.expect(401, done);
}
}
当我启动mocha时,此测试成功。我在--watch mode
启动它,每当我保存文件并且mocha重新启动测试时我都会收到以下错误:
MongooseError: Cannot overwrite `user` model once compiled.
at Mongoose.model (...\node_modules\mongoose\lib\index.js:376:13)
...
我尝试在before
和after
挂钩中连接和断开Mongoose,但这并没有改变任何内容。
对我来说,Mocha只是在不停止它的情况下重新加载我的应用程序。我在这里错过了什么?什么是最佳做法?