2016-01-14 3 views
1

Я пытался научить себя, как тестировать свой код, поскольку у меня возникают проблемы с выяснением, где мои ошибки генерируются время от времени. Вот простая функция, я испытания-unit testing help- node mocha должен

var exports = module.exports = {}; 

exports.mike = function(num) { 
    var result = num * 2; 
    return result; 
} 

Вот что у меня есть в моем /test/test.js

var should = require('should'); 
var pete = require('../program'); 
describe('#mike()', function(){ 
    it('when passed a 2 should equal 4', function(){ 
     pete.mike(2).should.equal(4); 
     }); 
    }); 

в моей package.json я имею

"scripts": { 
    "test": "mocha" 
    } 

Когда я запускаю проверку npm, все работает правильно. Мой вопрос в том, каковы наилучшие методы использования модульных тестов? Я знаю, что вы можете написать им встроенный код, но похоже, что это вызовет ненужное раздувание. Могут ли они использоваться, только требуя их в вашем test.js, как я, или есть способ, которым вы можете запустить тест на внешнем файле?

(я имею в виду nodeschool для примера. Я знаю, что они как-то работает, что выглядит как юнит-тесты на вашей программе, которые вы создаете без вас специально написать что-то в вашем коде, чтобы включить тестирование.)

спасибо!

ответ

0

В моем проекте все тестовые файлы находятся под папкой /test с именем test-NeedTestFileName.js.

И в package.json

"scripts": { 
    "start": "node ./src/server/app", 
    "build": "node build/server/server.js --install_folder .", 
    "mocha": "./node_modules/.bin/mocha -u bdd -R spec --timeout 10000 ./src/server/tests/test-*.js", 
    "mocha-report": "./node_modules/.bin/mocha -R xunit --timeout 10000 ./src/server/tests/test-*.js -O output=./test-results/mocha.xml", 
    "karma": "node node_modules/karma/bin/karma start", 
    "test": "npm run mocha-report && npm run karma", 

Когда я хочу запустить модульное тестирование, просто запустите npm run mocha. Чтобы получить отчет о единичном тестировании, будет запущен npm test.

+0

У вас есть модуль. Экспортируйте свои функции, а затем требуйте их в своих тестах, как я? – Jimbo

+0

Да, вы правы ... – zangw