2013-05-01 38 views

回答

7

实习生使用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-

+0

那么我会如何模拟每个测试呢?我不熟悉Dojos AMD实现,那么是否有可能为每个测试创建一个自己的上下文,就像我在我的问题中提到的那样,在SO中描述过? – 2013-05-01 20:01:39

+0

目前,Dojo加载器并不支持RequireJS在创建具有独立配置的'require'方面所做的完全相同的事情。这是我希望添加的一个功能,以更好地支持此用例。您可以通过将'undef'功能与'map'结合来做类似的事情,但它不够优雅,所以我不建议直接做。在此期间,您应该能够用'require.js'(在'client.html','client.js'和'runner.js'中)替换加载'dojo/dojo.js',并且所有东西都应该静止工作。请输入功能请求。 – 2013-05-01 20:56:16

+1

Intern 1.5将包含一个'require.undef' API,因此如果您需要修改配置以模拟测试的AMD依赖项,您可以从缓存中移除模块。 – 2014-02-25 16:15:38

2

不知道这是否会有所帮助。我创建了一个模块,用于使用Dojo加载器嘲笑模块依赖关系:https://github.com/stdavis/StubModule

适用于我的需求。我没有看到任何理由为什么它不会在实习生工作,但还没有尝试过。

相关问题