2016-02-15 45 views
0

我是使用gulp,mocha,chai编写用于测试我的JavaScript文件的测试用例的新成员。配置要求js在javascript中加载AMD模块

我的文件目录

Project 
|-- _src 
| `-- scripts 
|  `-- ui 
|   |-- ChangePos.js 
|   |-- PosRenderer 
|   `-- utils 
|    |-- Element 
|    `-- Config 
`-- test 
    `-- index.js 

utils的/ ChangePos.js

define(['Config', 
      'Element', 
      'PosRenderer' 

] { 
     function() { 
     //mycode 
     } 
    }); 

它在配置和组件文件的依赖性。

测试/ index.js

var requirejs = require("requirejs"); 
var chai = require('chai'); 
var expect = chai.expect; 

requirejs.config({ 
    baseUrl: './../_src/scripts/ui', 
    paths: { 
     utils: 'utils' 
    }, 

    nodeRequire: require, 
    map: { 
     '*': { 
      'NIT.Cookie': 'utils/Element' 
     } 
    } 
}); 

    describe('almeObjectConfig', function() { 
     var ele, conf, obj; 
     before(function (done) { 
      requirejs(['utils/Config', 'utils/Element'], 
       function (config, element) { 
        console.log('Configuration: ' + config); 
        console.log('Element: ' + element); 
       ele = element; 
       conf = config; 
       done(); 
      }); 
     }); 

我试图加载ChangePos这对配置通过指定路径 'utils的' 依赖性。

utils: 'utils' 

我可以通过指定的基本URL,但baseUrl:'./../_src/scripts/ui/utils'这里是UI文件夹内只检查,并给予一个未定义的对象明确负载元件。

如果我将所有文件放在UI文件夹中,它会正常工作,因为它正在考虑基本URL并只在基本文件夹中查看。

我不知道我在这里错过了什么。 感谢您的帮助。

回答

0

看你的配置我什么也看不见,将允许ChangePos加载utils/ElementElementutils/ConfigConfig。特别是,paths配置'utils': 'utils'不会这样做,并且对于您具有的特定配置没有任何作用。要得到代码你必须工作,你必须有paths成为:

paths: { 
    'Config': 'utils/Config', 
    'Element': 'utils/Element' 
} 
+0

路易斯,非常感谢。有效!! – Shagun