I'm trying to figure out on how to test internal (i.e. not exported) functions in nodejs (preferably with mocha or jasmine). And i have no idea!
Let say I have a module like that:
function exported(i) {
return notExported(i) + 1;
}
function notExported(i) {
return i*2;
}
exports.exported = exported;
And the following test (mocha):
var assert = require('assert'),
test = require('../modules/core/test');
describe('test', function(){
describe('#exported(i)', function(){
it('should return (i*2)+1 for any given i', function(){
assert.equal(3, test.exported(1));
assert.equal(5, test.exported(2));
});
});
});
Is there any way to unit test the notExported
function without actually exporting it since it's not meant to be exposed?
exported
and let that drive the testing ofnotExported
. Additionally, this integration approach makes it difficult/impossible to test howexported
reacts to failures innotExported
, since you can't accessnotExported
from your unit test in order to drive it to failure. – Lovelovebird