【发布时间】:2014-06-05 22:51:51
【问题描述】:
我对单元测试、mocha 和 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 有误解吗?任何帮助将不胜感激。
【问题讨论】:
标签: javascript unit-testing mocha.js should.js