【问题标题】:How to mock dependencies in Intern tests [closed]如何在实习生测试中模拟依赖项[关闭]
【发布时间】:2013-04-25 20:23:18
【问题描述】:

实习生是否使用 requireJs 加载测试?我正在使用this approach 来模拟我要测试的模块的依赖关系,所以我想知道这是否也适用于 Intern。

【问题讨论】:

    标签: unit-testing mocking intern


    【解决方案1】:

    Intern 使用 Dojo Toolkit 的 AMD 加载程序。要模拟依赖项,您应该能够只使用标准的 AMD map 功能。在您的实习生配置文件中,这样的内容应该可以满足您的需要:

    define({
      …,
      loader: {
        map: {
          myPackage: {
            'myPackage/foo': 'myPackage/mocks/foo',
            'herp': 'myPackage/mocks/herp',
            'derp': 'myPackage/mocks/derp'
          }
        }
      }
    });
    

    有关map 的更多信息,请参阅https://github.com/amdjs/amdjs-api/wiki/Common-Config#map-

    【讨论】:

    • 那么我将如何模拟每个测试?我不熟悉 Dojos AMD 实现,因此是否可以像我在问题中提到的 SO 中描述的那样为每个测试创建自己的上下文?
    • 目前,Dojo 加载器不支持与 RequireJS 在使用独立配置创建 requires 时所做的完全相同的事情。这是我想添加的一个功能,以更好地支持这个用例。你今天可以通过将undef 函数与map 组合来做类似的事情,但它不那么优雅,所以我不建议直接这样做。在此期间,您应该能够将加载dojo/dojo.js 替换为require.js(在client.htmlclient.jsrunner.js 中)并且一切应该仍然有效。请提出功能请求。
    • Intern 1.5 将包含一个require.undef API,因此如果您需要修改配置以模拟 AMD 依赖项进行测试,您可以从缓存中删除模块。
    【解决方案2】:

    不确定这是否会有所帮助。我使用 Dojo 加载器创建了一个用于模拟模块依赖项的模块:https://github.com/stdavis/StubModule

    非常适合我的需求。我看不出它在实习生中不起作用但还没有尝试过的任何原因。

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      相关资源
      最近更新 更多