Prueba de módulos CommonJS que usan alias y cuñas de navegador

Browserify permite crear alias y moderar módulos que no son directamente compatibles con CommonJS. Como me gustaría ejecutar mis pruebas en la CLI del nodo, ¿puedo manejar esos alias y módulos modificados en el nodo?

Por ejemplo, digamos que estoy aliasing ./my-super-module to supermodule y shimming y aliasing algún complemento jquery ./vendor/jquery.plugin.js -> ./shims/jquery.plugin.shim.js a jquery.plugin

Como resultado, puedo hacer esto en mi módulo:

 var supermodule = require('supermodule'); require('jquery.plugin'); // do something useful... module.exports = function(input) { supermodule.process(output) } 

¿Hay alguna práctica sobre cómo podría probar este módulo en node.js / cli para que se resuelvan las dependencias?

Es posible que desee usar proxyquire si planea probar este módulo directamente en un nodo utilizando cualquier corredor cli.

usar mocha será algo como esto

 describe('test', function () { var proxyquire = require('proxyquire').noCallThru(); it('should execute some test', function () { var myModule = proxyquire('./my-module', { // define your mocks to be used inside the modules 'supermodule' : require('./mock-supermodule'), 'jquery.plugin': require('./jquery-plugin-mock.js') }); }); }); 

Si desea probar este es un navegador real, es posible que no necesite burlarse de sus módulos de alias, puede usar browserify para ejecutar sus pruebas en karma directamente.

Si necesita simular módulos en ese escenario, puede usar proxyquireify , que le permitirá hacer lo mismo pero con browserify .

También hay browsyquire, que es una bifurcación de proxyquireify que hice con algunas características adicionales y una corrección de errores .