2015-06-10 63 views
0

我在瀏覽器中使用qUnit來測試我的寵物項目。該模塊我的單元測試可以看起來像:如何在單元測試時模擬特定的RequireJs依賴關係

// Filename: views/base.js 

define(['../manager'], function(Manager){ 

    return Backbone.View.extend({ 

    //... 

}); 

我想模擬出依賴"../manager"(manager.js) 我嘗試使用testr.jsSquire.js這兩個建議修改到配置爲路徑的路徑。

實施例:

testr.config({ 
    root: '../', 
    baseUrl: 'src', 
    stubUrl: 'tests/mocks', 
    ignore: ['jquery', 'underscore', 'backbone'], 
    whitelist: ['tests/unit'] 
}); 

我看到後運行此代碼是我測試(base.js)的模塊也嘲笑出以及單元測試模塊,因爲它們被包括作爲依賴關係的問題在單元測試亞軍:

define([ 
    'tests/unit/test-unit', 
    'tests/unit/views/base-view-unit', 
], function(Test, BaseViewTest){ 

// ... 

}); 

控制檯輸出:

http://localhost:63342/project/tests/mocks/js/views/base.stub.js 404 (Not Found) 
http://localhost:63342/project/tests/mocks/tests/unit/views/base-view-unit.stub.js 404 (Not Found) 

我可以添加這兩個文件到白名單,但這不會解決我的問題。

我想我的問題是:如何模擬我正在測試的文件的代碼,但不包括文件本身,當它被包含到單元測試運行器中時?

回答

0

好的我在this post找到了可能的答案,說我需要使用單獨的config.js來從不同路徑加載模擬依賴關係。育。

相關問題