2014-03-13 40 views
4

好的我剛開始進入Browserify,並且在編寫我的茉莉花測試時遇到了一些問題。基本上我有一個骨幹視圖,它有嵌套的視圖,現在出於測試目的,我顯然不想在這裏測試嵌套視圖,因爲它正在用它自己的單元測試進行測試。我想要做的只是存根出來,檢查它被稱爲具有正確在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

[如何在使用RequireJS(和Jasmine/Sinon)時在另一個視圖渲染方法中實例化存根骨幹視圖](http://stackoverflow.com/questions/15837017/how-to-stub-backbone-view在另一個意見,呈現方法,當你) –

+0

嗯不知道我完全同意,雖然方法是相似的,有更好的方法在requirejs伊莫。我也不確定答案能解決我的問題,這是一個模型而不是元素。 –

回答

1

您應該查看rewireify或proxyquireify。它們將允許您在測試中操作「nestedView = require('./ nested_view.coffee')」語句。但是,是的,您必須爲您要模擬的每個要求聲明執行此操作。你也可能想看看Facebook的Jest,它會自動嘲笑你的所有需求陳述。

+0

Facebook的Jest有不少[主要]問題:https://github.com/facebook/jest/issues – Hakkar

相關問題