Rewireify
Rewireify is a port of Rewire for Browserify that adds setter and getter methods to each module so that their behaviour can be modified for better unit testing. With Rewireify you can:
- Inject mocks for other modules
- Leak private variables
- Override variables within the module
Rewireify is compatible with Browserify 3+
Usage
First install and save Rewireify into your project's development dependencies:
$ npm install rewireify --save-dev
Include the Rewireify transform as part of your test bundle:
$ browserify -e app.js -o test-bundle.js -t rewireify -s test-bundle
Rewireify can also ignore certain files with the --ignore
option and a filename or glob expression. Multiple files or patterns can be excluded by separating them with commas:
$ browserify -e app.js -o test-bundle.js -t [ rewireify --ignore filename.js,**/*-mixin.js ] -s test-bundle
Now you can inspect, modify and override your modules internals in your tests. The __get__
and __set__
methods are the same as Rewire:
var bundle = ; // Private variables can be leaked...subject; // ...or modifiedsubject; // Nested properties can be inspected or modifiedsubject; // Dependencies can be mocked...subject; // ...or methods stubbedsubject; // And everything can be revertedvar revert = subject; ;
For more details check out the Rewire documentation.