好的,我刚开始进入Browserify并且在编写我的茉莉花测试时遇到了一些问题。基本上我有一个骨干视图,其中有嵌套视图,现在出于测试目的,我显然不想在这里测试嵌套视图,因为它正在使用它自己的单元测试进行测试。我想要做的就是将其删除,检查是否正在使用正确的
进行调用所以我有以下
nestedView = require('./nested_view.coffee')
module.exports = class MainView extends Backbone.View
initialize:(collection, attr)->
NestedView = if _.isUndefined(attr.Stub) then NestedView else attr.Stub
@nested_view = new NestedView()
然后在我的测试中:
it "Tests my nested view", ->
Stub = sinon.stub()
@mainview = new MainView(collection:@collection, {SV:Stub})
expect(Stub).toHaveBeenCalledOnce()
虽然这确实有效但感觉有点讨厌,因为我不得不在我的脚本中添加代码来运行测试。
有没有人知道更好的方法?
答案 0 :(得分:1)
您应该查看rewireify或proxyquireify。它们将允许您操纵" nestedView = require(' ./ nested_view.coffee')"你的考试中的陈述。但是,是的,您必须为要模拟的每个require语句执行此操作。您也可以查看Facebook的Jest,自动嘲笑您的所有需求声明。