在运行时需要文件&单元测试问题

时间:2017-01-05 15:24:57

标签: javascript node.js unit-testing requirejs amd

我使用require.js在运行时加载文件,如下所示 当我在正确的上下文中运行文件时,这是按预期工作(我的意思是当呼叫来自正确的路径时。)

module1.js

define(["otherModule"], function(otherModule) {
 working!!!
....

现在我想从这个文件(module1)创建一些单元测试 其他上下文(来自项目中不同位置的测试文件夹),我收到错误

require.js:145 Uncaught Error: Script error for: otherModule

因为它试图在单元测试期间运行此路径上的get 它位于不同的项目结构中......

https://app/path1/path2/path3/otherModule.js

运行时中工作(来自不同的上下文),它在路径中找到它

https://app/path1/path2/path3/path4/path5/otherModule.js

还有其他路径4&有效的请求中的path5, 我应该如何解决这两种情况(UT /运行时)?

http://requirejs.org

1 个答案:

答案 0 :(得分:0)

我认为您应该能够通过应用RequireJS配置文件来使其工作,以便从其路径中抽象出模块名称:

E.g。在测试环境中,调用类似这样的初始化步骤:

  require.config({
    baseUrl: "/path1/path2/path3"
  });

或者,您也可以像这样重新映射单个模块(这也可以用于注入特定模块的不同实现以进行测试等)。

  require.config({
    paths: {
        "otherModule": "/path1/path2/path3/otherModule"
    }
  });

见这里:http://requirejs.org/docs/api.html#config