在没有框架的情况下开始单元测试JavaScript

在没有框架的情况下开始单元测试JavaScript,javascript,node.js,unit-testing,Javascript,Node.js,Unit Testing,我正在构建一个JavaScript应用程序(还没有框架,但我可能会将其移动到主干)。我创建了各种类,下面是一个示例,chart.js: var moment = require('moment'); var chart = { ... getAllMonths: function(firstMonth, lastMonth) { var startDate = moment(firstMonth); var endDate = moment(lastMonth);

我正在构建一个JavaScript应用程序(还没有框架,但我可能会将其移动到主干)。我创建了各种类,下面是一个示例,
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;
console.log('hello world'); 
var chart = require('../src/chart');
var months = chart.getAllMonths('2014-02-01', '2015-03-01');
// assert if months.length != 14
我的文件结构如下:

index.js
src/
  chart.js
  form.js
我将这两个类导入
index.js
并使用
browserify
将这些脚本捆绑起来,以便在我的web应用程序中使用它们

现在我想为
chart.js
form.js
添加测试。我添加了一个名为
test/
的新目录和空测试文件:

index.js
src/
  chart.js
  form.js
test/
  test_chart.js
  test_form.js
现在我的问题是测试
test\u chart.js
应该是什么样子,以便测试
getAllMonths
函数,以及应该使用什么测试运行程序

我已经开始在
test\u 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;
console.log('hello world'); 
var chart = require('../src/chart');
var months = chart.getAllMonths('2014-02-01', '2015-03-01');
// assert if months.length != 14
但是,如果我使用
节点测试/test_chart.js
运行此操作,我会得到有关
时刻
等模块导入失败的错误(这些不应该与原始
chart.js
模块一起自动导入吗?)


其次,对于这种简单的测试,我可以使用什么样的测试运行程序?我想要一个能够自动运行测试目录中所有内容的东西,并提供断言等。

我最终使用了Mocha。这真的很简单:

npm install --save-dev mocha
mocha

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

但进口产品仍然存在问题