我正在构建一个JavaScript应用程序(还没有框架,但我可能会将其移至Backbone)。我创建了各种类,例如chart.js
:
var moment = require('moment');
var chart = {
...
getAllMonths: function(firstMonth, lastMonth) {
var startDate = moment(firstMonth);
var endDate = moment(lastMonth);
var monthRange = [];
while (startDate.isBefore(endDate)) {
monthRange.push(startDate.format("YYYY-MM-01"));
startDate.add(1, 'month');
}
return monthRange;
},
setMonths: function() {
// get data via ajax
this.globalOptions.months = this.getAllMonths(data['firstMonth'], data['lastMonth']);
}
};
module.exports = chart;
我的文件结构如下:
index.js
src/
chart.js
form.js
我将这两个类导入index.js
并使用browserify
捆绑这些脚本,以便在我的网络应用中使用它们。
现在我想为chart.js
和form.js
添加测试。我添加了一个名为test/
的新目录和空测试文件:
index.js
src/
chart.js
form.js
test/
test_chart.js
test_form.js
我现在的问题是test_chart.js
应该是什么样子来测试getAllMonths
函数,以及我应该使用哪个测试运行器。
我已开始在test_chart.js
中尝试以下内容:
console.log('hello world');
var chart = require('../src/chart');
var months = chart.getAllMonths('2014-02-01', '2015-03-01');
// assert if months.length != 14
但如果我使用node test/test_chart.js
运行此操作,我会收到有关moment
等模块导入失败的错误(不应该使用原始chart.js
模块自动导入这些错误吗?)
其次,我可以使用哪种测试运行器进行这种简单的测试?我喜欢能够自动运行测试目录中所有内容的东西,并提供断言等。
答案 0 :(得分:0)
我最终使用了摩卡。这真的很简单:
npm install --save-dev mocha
mocha
轰!
它会自动查找test/
文件夹中的文件。
虽然仍然存在进口问题。