Я создаю приложение JavaScript (без рамки, но я могу переместить его на Backbone). Я создал различные классы, вот пример, chart.js
:Начало работы с модульным тестированием JavaScript без рамки
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
модуль?).
Во-вторых, какой тестовый бегун можно использовать для такого простого тестирования? Мне хотелось бы что-то, что автоматически запустит все в тестовом каталоге и предложит подтверждения и т. Д.