Testing Mongoose Node.JS app

前端 未结 3 900
甜味超标
甜味超标 2021-02-07 10:53

I\'m trying to write unit tests for parts of my Node app. I\'m using Mongoose for my ORM.

I\'ve searched a bunch for how to do testing with Mongoose and Node but not com

3条回答
  •  耶瑟儿~
    2021-02-07 11:44

    I too went looking for answers, and ended up here. This is what I did:

    I started off using mockery to mock out the module that my models were in. An then creating my own mock module with each model hanging off it as a property. These properties wrapped the real models (so that child properties exist for the code under test). And then I override the methods I want to manipulate for the test like save. This had the advantage of mockery being able to undo the mocking.

    but...

    I don't really care enough about undoing the mocking to write wrapper properties for every model. So now I just require my module and override the functions I want to manipulate. I will probably run tests in separate processes if it becomes an issue.

    In the arrange part of my tests:

    // mock out database saves
    var db = require("../../schema");
    db.Model1.prototype.save = function(callback) { 
        console.log("in the mock");
        callback();
    };
    db.Model2.prototype.save = function(callback) {
        console.log("in the mock");
        callback("mock staged an error for testing purposes");
    };
    

提交回复
热议问题