Я работаю над сложным вычислением, которое включает сбор данных из нескольких коллекций, а затем хруст чисел. С этой целью я следую TDD и хочу сначала написать Unit Test. Я понимаю, что запрос к базе данных нарушает парадигму тестирования модуля, и я должен использовать макетные объекты, но я пока что хочу запросить базу данных, чтобы протестировать несколько номеров. Я пытаюсь использовать обещания Mongoose, чтобы обойти асинхронный аспект NodeJS, но я не могу понять это. Вот мой код:Unit Test MongoDB query using Mongoose Promise
(function (argument) {
'use strict';
var should = require('should');
var assert = require('chai').assert;
var mongoose = require('mongoose');
var MeasureTherm = mongoose.model('MeasureTherm');
describe('Calculations Server Test', function(){
describe('Model Tests', function() {
it('should find all MeasureTherms for a Program, Year and End Use', function() {
var promise = getMeasureThermsByProgramAndEndUse("Program 1", 2015, "End Use 1").then(function(results) {
this.fulfill(results);
});
promise.onFulfill(function(results){
assert.equal(200, results.length);
});
});
});
});
var getMeasureThermsByProgramAndEndUse = function (program, year, endUse) {
return MeasureTherm.find().exec();
};
})();
Мой тест всегда проходит, даже если я ввел неверный номер в мой assert.equal().