Я очень новичок в модульных тестах, mocha и should.js, и я пытаюсь написать тест для асинхронного метода, который возвращает обещание. Вот мой тестовый код:should.js не приводит к ошибке моккового теста
var should = require("should"),
tideRetriever = require("../tide-retriever"),
moment = require("moment"),
timeFormat = "YYYY-MM-DD-HH:mm:ss",
from = moment("2013-03-06T00:00:00", timeFormat),
to = moment("2013-03-12T23:59:00", timeFormat),
expectedCount = 300;
describe("tide retriever", function() {
it("should retrieve and parse tide CSV data", function() {
tideRetriever.get(from, to).then(
function(entries) { // resolve
entries.should.be.instanceof(Array).and.have.lengthOf(expectedCount);
},
function(err) { // reject
should.fail("Promise rejected", err);
}
);
});
});
Когда я вручную проверить метод tideRetriever.get
, он последовательно решает массив из 27 элементов (как и ожидалось), но тест не подведет, независимо от значения expectedCount
. Вот мой простой ручной тест:
tideRetriever.get(from, to).then(
function(entries) {
console.log(entries, entries.length);
},
function(err) {
console.log("Promise rejected", err);
}
);
Я также могу разместить источник для тестируемого модуля, если это необходимо.
Я что-то не понимаю о Mocha или should.js? Любая помощь будет принята с благодарностью.
Вы забыли добавить «сделано» в качестве параметра функции – Chaoste
@Chaoste спасибо, исправлено. –