2014-05-11 4 views
1

Browserify를 사용하면 직접 CommonJS와 호환되지 않는 별칭 및 모듈을 만들 수 있습니다. 노드 CLI에서 테스트를 실행하고 싶기 때문에 노드에서 이러한 별칭과 shimmed 모듈을 어떻게 든 처리 할 수 ​​있습니까? jquery.plugin에>./shims/jquery.plugin.shim.js -browserify 별칭 및 shim을 사용하는 CommonJS 모듈 테스트

예를 들어, 내가 supermodule./my-super-module을 앨리어싱과 shimming 및 일부 jQuery 플러그인 ./vendor/jquery.plugin.js 별명있어 가정 해 봅시다.

결과, 내 모듈에서이 작업을 수행 할 수 있습니다 의존성이 해결되도록 내가 Node.js를/CLI에서이 모듈을 테스트 할 수있는 방법을 어떤 관행

var supermodule = require('supermodule'); 
require('jquery.plugin'); 

// do something useful... 
module.exports = function(input) { 
    supermodule.process(output) 
} 

이 있습니까?

답변

1

cli 러너를 사용하여 노드에서 직접이 모듈을 테스트하려는 경우 proxyquire을 사용할 수 있습니다. 당신이 진짜 브라우저 테스트하려면

사용 모카는 직접 karma에서 테스트를 실행하는 browserify을 사용할 수 있습니다, 당신은 당신의 별명 모듈을 조롱하지 않아도됩니다,이

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') 
    }); 
    }); 
}); 

같은 것 .

해당 시나리오에서 모듈을 모의해야하는 경우 proxyquireify을 사용할 수 있습니다. 동일하게 수행 할 수 있지만 browserify을 사용할 수 있습니다.

도 입니다. 이는 proxyquireify의 포크이며 약간의 추가 기능과 bug fix으로 만들어졌습니다.

관련 문제