[英]How to mock specific RequireJs dependencies while unit testing
我在瀏覽器中使用qUnit對我的寵物項目進行單元測試。 我正在進行單元測試的模塊如下所示:
// Filename: views/base.js
define(['../manager'], function(Manager){
return Backbone.View.extend({
//...
});
我想模擬依賴項"../manager"
),我嘗試使用testr.js和Squire.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)
我可以將這兩個文件添加到白名單中,但不能解決我的問題。
我想我的問題是:如何模擬當前正在測試的文件的dep,而不模擬包含在單元測試運行器中的文件本身?
好的,我在這篇文章中找到了可能的答案,說我需要使用單獨的config.js從不同的路徑加載模擬依賴項。 Yu
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.