Sometimes, we want to test private functions in unit tests with Mocha and Node.js.
In this article, we’ll look at how to test private functions in unit tests with Mocha and Node.js.
How to test private functions in unit tests with Mocha and Node.js?
To test private functions in unit tests with Mocha and Node.js, we can use the rewire module.
To install it, we run
npm i rewire
Then we use it by writing
const rewire = require("rewire");
const foobar = rewire("./foobar");
describe("private_foobar1", () => {
const privateFoobar1 = foobar.__get__("privateFoobar1");
it("should do stuff", (done) => {
const stuff = privateFoobar1(filter);
should(stuff).be.ok;
});
});
to import the ./foobar module that we want to test.
And then we use __get__ to get the privateFoobar1 function from ./foobar.
Then we call the returned privateFoobar1 in our test.
Conclusion
To test private functions in unit tests with Mocha and Node.js, we can use the rewire module.