Модульное тестирование
Я пытался научить себя, как выполнять модульное тестирование своего кода, так как у меня возникают проблемы с выяснением, где мои ошибки порой генерируются. Вот простая функция, которую я тестирую
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);
});
});
в моем пакете. у меня есть
"scripts": {
"test": "mocha"
}
Когда я запускаю тест npm, все работает правильно. Мой вопрос заключается в следующем: каковы наилучшие методы использования модульных тестов? Я знаю, что вы можете написать их в своем коде, но кажется, что это приведет к ненужному раздутию. Могут ли они быть использованы только при наличии их в вашем test.js, как я, или есть ли способ запустить тест для файла, внешнего по отношению к нему?
(Я имею в виду нодшколу для примера. Я знаю, что они как-то запускают то, что похоже на модульные тесты в вашей программе, которые вы создаете, без необходимости специально писать что-то в своем коде, чтобы включить тестирование.)
Спасибо!
1 ответ
В моем проекте все тестовые файлы находятся в папке /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
,