配置Require js以在javascript中加载AMD模块

时间:2016-02-15 10:47:00

标签: javascript unit-testing requirejs mocha amd

我是使用gulp,mocha,chai编写用于测试我的javascript文件的测试用例的新手。

我的档案目录

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

utils的/的 ChangePos.js

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

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

它依赖于Config和Element文件。

测试/ 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();
            });
        });

我正在尝试通过指定路径'utils'来加载依赖于元素配置 ChangePos

utils: 'utils'

我可以通过将baseURL指定为baseUrl:'./../_src/scripts/ui/utils'来显式加载Element,但是这里只检查ui文件夹并给出一个未定义的对象。

如果我将所有文件放在 ui 文件夹中,因为它正在考虑基本URL并且仅查看基本文件夹内部。

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

1 个答案:

答案 0 :(得分:0)

查看您的配置,我发现任何内容都不允许ChangePosutils/Element Elementutils/Config加载为Config。特别是,paths配置'utils': 'utils'不会执行此操作,并且对您具有的特定配置不执行任何操作。要获得必须使用的代码,您必须paths为:

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