Unit testing read file with Promise and nodeunit
This post will demonstrate a sample usage of using unit testing framework nodeunit to test a Promise function for reading file content.
1. Install nodeunit if you don’t have it installed yet.
npm install nodeunit -g
2. Create a project folder my_project and a test folder inside it
mkdir my_project mkdir my_project/test
3. Create my_project/filereader.js with the following code
var fs = require('fs');
exports.readFile = function (filePath) {
if (!filePath) throw "file path is required";
return new Promise((resolve, reject) => {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) throw err;
resolve(data);
});
});
}
4. Create the test file for testing the filereader, my_project/test/test_filereader.js with the following content.
var fs = require('fs');
var fileReader = require('../filereader');
var testFilePath = __dirname + "/../a_file_with_some_content.txt";
module.exports = {
setUp: function (cb) {
console.log("setUp");
return cb();
},
tearDown: function (cb) {
console.log("tearDown");
return cb();
},
'test read file': function(test) {
test.expect(2);
test.throws(() => {fileReader.readFile();});
testFileContent = fs.readFileSync(testFilePath, "utf8");
fileReader.readFile(testFilePath)
.then((content) => {
test.equal(content, testFileContent);
test.done();
})
.catch(console.log);
},
"another dummy test": function(test) {
test.equal(1,1);
test.done();
}
};
5. Create my_project/a_file_with_some_content.txt with some content it, any content would work.
6. Run the test from the command line in the my_project folder
nodeunit test
Search within Codexpedia
Custom Search
Search the entire web
Custom Search
Related Posts