Unit testing Browserify/Rewireify单元测试,如何在没有捆绑包的情况下注入依赖项?
Browserify很好地处理依赖项,它需要依赖项,并创建一个有序的包。当单元测试一个模块有它自己的依赖项时,它会稍微复杂一些 我的测试使用的是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
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