【问题标题】:How to mock specific RequireJs dependencies while unit testing如何在单元测试时模拟特定的 RequireJs 依赖项
【发布时间】:2015-08-25 02:58:06
【问题描述】:

我在浏览器中使用qUnit 对我的宠物项目进行单元测试。我正在单元测试的模块可能如下所示:

// 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)

我可以将这两个文件添加到白名单中,但这不能解决我的问题。

我想我的问题是:如何在单元测试运行程序中包含我正在测试的文件的 deps 而不是文件本身?

【问题讨论】:

    标签: javascript unit-testing testing mocking dependencies


    【解决方案1】:

    好的,我在this post 中找到了可能的答案,说我需要使用单独的 config.js 从不同的路径加载模拟依赖项。呵呵。

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 2023-03-13
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2016-02-19
      • 2020-03-29
      • 2013-07-07
      • 1970-01-01
      相关资源
      最近更新 更多