Node.js 快速控制器的测试,在哪里访问mongoose模型?
我想独立地对express控制器进行单元测试。但它们与猫鼬模型相互作用。所以问题是我如何测试它们?比如说-Node.js 快速控制器的测试,在哪里访问mongoose模型?,node.js,unit-testing,express,testing,mongoose,Node.js,Unit Testing,Express,Testing,Mongoose,我想独立地对express控制器进行单元测试。但它们与猫鼬模型相互作用。所以问题是我如何测试它们?比如说- const Model = require('./../models/mymodels'); const controller = (req, res) => { const body = req.body; const foo = new Model(body); foo.save().then(foo => res.send(foo)).catch(err => r
const Model = require('./../models/mymodels');
const controller = (req, res) => {
const body = req.body;
const foo = new Model(body);
foo.save().then(foo => res.send(foo)).catch(err => res.send(error));
};
因此,我想独立测试功能控制器
const expect = require('chai').expect;
const Model = require('./../models/mymodels');
describe('controller test', function() {
it('should be valid if body is correct', function(done) {
const testBody = {myKey: "myVal"}
const m = new Model(testBody);
m.validate(function(err) {
expect(err.errors).to.not.exist;
done();
});
});
});
这是一个例子,请查看chai文档以了解更多例子谢谢您的回答,但我认为您误解了我的问题。我想测试我的控制器函数,并断言它“应该使用正确的参数调用新模型”或类似的东西。您正在测试中调用模型,这是模型的单元测试,但我想测试控制器,使其不应访问数据库,基本上,我想模拟模型,以便我可以断言有关调用的某些内容。在本例中,控制器所做的唯一一件事是创建模型的实例。您将要编写的测试将反映控制器的功能。