【发布时间】:2020-08-25 19:25:06
【问题描述】:
我有一个简单的快速例程来保存传入的数据:
app.post('/news', async (req, res, next) => {
const news = await model.create(req.body);
res.status(201).json(news);
});
我想为此使用mockingoose 和supertest 编写单元测试。
it('should create news', async () => {
mockingoose(NesModel).toReturn({ _id: '507f191e810c19729de860ea', title: 'dadsd' }, 'save');
const res = await request(app)
.post('/news')
.send({
title: 'ABC',
content: 'adbasdasdsad'
});
expect(res.statusCode).toBe(201);
});
我得到这个错误:
● News › should create news
ValidationError: News validation failed: _id: Cannot read property 'where' of undefined
at new ValidationError (node_modules/mongoose/lib/error/validation.js:31:11)
at model.Document.invalidate (node_modules/mongoose/lib/document.js:2563:32)
at node_modules/mongoose/lib/document.js:2385:17
at node_modules/mongoose/lib/schematype.js:1181:9
我不知道如何解决这个问题。有什么建议吗?
【问题讨论】:
-
我有一个非常相似的问题,但根本没有使用 mockingoose。只需使用 Mongoose...
标签: node.js unit-testing express mongoose mockingoose