Unit testing Browserify/Rewireify单元测试,如何在没有捆绑包的情况下注入依赖项?

Unit testing Browserify/Rewireify单元测试,如何在没有捆绑包的情况下注入依赖项?,unit-testing,dependency-injection,bundle,mocha.js,browserify,Unit Testing,Dependency Injection,Bundle,Mocha.js,Browserify,Browserify很好地处理依赖项,它需要依赖项,并创建一个有序的包。当单元测试一个模块有它自己的依赖项时,它会稍微复杂一些 我的测试使用的是mocha,sinon,chai 我的应用程序基于主干网,木偶网,以及一些jQuery插件 我把它与grunt和browserify放在一起,所有这些都是用咖啡脚本编写的 例如,我有一个如下所示的模块: # Global, because swosh won't know what jQuery is otherwise. $ = global.jQue

Browserify很好地处理依赖项,它需要依赖项,并创建一个有序的包。当单元测试一个模块有它自己的依赖项时,它会稍微复杂一些

我的测试使用的是
mocha
sinon
chai

我的应用程序基于
主干网
木偶网
,以及一些
jQuery
插件

我把它与
grunt
browserify
放在一起,所有这些都是用咖啡脚本编写的

例如,我有一个如下所示的模块:

# Global, because swosh won't know what jQuery is otherwise.
$ = global.jQuery = require 'jquery'
require '../jqueryPlugins/swosh.js'

module.exports =
  App.MyView: Mn.ItemView.extend
    # Here I make use of jQuery plugin swosh
App = require '../src/swoshViews.coffee'

theView = new App.MyView
describe 'Swooshing'
  it 'swooshes', ->
    # I create a spy/stub of the jQuery plugin
    # and make sure it's called as expected.
当我测试这段代码时,我会这样做:

# Global, because swosh won't know what jQuery is otherwise.
$ = global.jQuery = require 'jquery'
require '../jqueryPlugins/swosh.js'

module.exports =
  App.MyView: Mn.ItemView.extend
    # Here I make use of jQuery plugin swosh
App = require '../src/swoshViews.coffee'

theView = new App.MyView
describe 'Swooshing'
  it 'swooshes', ->
    # I create a spy/stub of the jQuery plugin
    # and make sure it's called as expected.
由于Browserify不是依赖项注入框架,jQuery插件将不适用于该模块,因此有一些选项可以实现这一点。最适合我的似乎是

我正在用Grunt运行我的任务,在那里运行browserify,并赢得转换
['coffeeify','rewireify']
。然而,我的问题是:

使用
npm test
运行的我的单元测试不使用浏览器

package.json
extract:

"scripts": {
  "test": "mocha"
},
Grunt>Browserify将为我安排一个.js捆绑包,其中包含
rewireify
baked-in,但我如何将其应用于我的npm测试任务?我的npm测试脚本只运行
mocha
,如上所示,它将在我所有的单元测试文件中运行测试,不需要捆绑包。如何以这种方式使用
rewify