使用无框架进行JavaScript单元测试的入门指南

3

我正在构建一个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将这些脚本捆绑起来,以便在我的Web应用程序中使用它们。
现在我想为chart.jsform.js添加测试。我添加了一个名为test/的新目录和空测试文件:
index.js
src/
  chart.js
  form.js
test/
  test_chart.js
  test_form.js

现在我的问题是,为了测试getAllMonths函数,test_chart.js应该长什么样子,以及我应该使用哪个测试运行程序。

我已经开始尝试在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模块自动导入吧?)。

其次,我可以使用哪种测试运行程序进行这种简单测试? 我希望有一个可以自动运行测试目录中所有内容并提供断言等功能的工具。

1个回答

1

我最终选择了Mocha。它真的很简单:

npm install --save-dev mocha
mocha

砰!

它会自动在test/文件夹中查找文件。

不过导入仍然存在问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接