【发布时间】:2020-11-03 02:29:06
【问题描述】:
我有一个使用 Node.js、Express 和 MongoDB 的后端设置。我为我的一个端点编写了两个单元测试,但遇到了意外行为。首先,这里是代码:
let chai = require('chai');
const chaiHttp = require('chai-http');
const server = require('../../../server')
const expect = chai.expect
chai.use(chaiHttp);
describe('POST /user/register', () => {
it('should create a new user', (done) => {
chai
.request(server)
.post('/user/register')
.send({username: 'Bob', password: 'password123'})
.end((err, res) => {
expect(res.status).to.equal(201)
done()
})
})
it('should result in an error if there is no payload', (done) => {
chai
.request(server)
.post('/user/register')
.send({})
.end((err, res) => {
expect(res.status).to.equal(500)
done()
})
})
})
在should create a new user 测试中,第一次尝试通过,但第二次失败,因为用户被持久化在数据库中,所以我的端点返回 409 状态码,而不是 201。
我知道我必须使用beforeEach 调用来清除测试数据库,我只是在搜索了一段时间后不确定实现。
【问题讨论】:
标签: node.js mongodb express testing backend