簡體   English   中英

單元測試時如何模擬特定的RequireJs依賴關系

[英]How to mock specific RequireJs dependencies while unit testing

我在瀏覽器中使用qUnit對我的寵物項目進行單元測試。 我正在進行單元測試的模塊如下所示:

// Filename: views/base.js

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

  return Backbone.View.extend({

   //...

});

我想模擬依賴項"../manager" ),我嘗試使用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)

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

我想我的問題是:如何模擬當前正在測試的文件的dep,而不模擬包含在單元測試運行器中的文件本身?

好的,我在這篇文章中找到了可能的答案,說我需要使用單獨的config.js從不同的路徑加載模擬依賴項。 Yu

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM