Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 快速控制器的测试,在哪里访问mongoose模型?_Node.js_Unit Testing_Express_Testing_Mongoose - Fatal编程技术网

Node.js 快速控制器的测试,在哪里访问mongoose模型?

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

我想独立地对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 => 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文档以了解更多例子

谢谢您的回答,但我认为您误解了我的问题。我想测试我的控制器函数,并断言它“应该使用正确的参数调用新模型”或类似的东西。您正在测试中调用模型,这是模型的单元测试,但我想测试控制器,使其不应访问数据库,基本上,我想模拟模型,以便我可以断言有关调用的某些内容。在本例中,控制器所做的唯一一件事是创建模型的实例。您将要编写的测试将反映控制器的功能。