2015-05-27 2 views
1

Я создаю приложение 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 модуль?).

Во-вторых, какой тестовый бегун можно использовать для такого простого тестирования? Мне хотелось бы что-то, что автоматически запустит все в тестовом каталоге и предложит подтверждения и т. Д.

ответ

0

В итоге я использовал мокко. Это действительно очень легко:

npm install --save-dev mocha 
mocha 

Boom!

Он автоматически ищет файлы в папке test/.

Тем не менее проблема с импортом.