尚未为上下文加载模块名称“lib / chai”:use require([])

时间:2016-03-20 19:05:01

标签: mocha karma-jasmine chai karma-mocha

它适用于karma-jasmine .....但不能使用karma-mocha ... y ??

module.exports = function(config){
   config.set({

   basePath : '../app',

   preprocessors: {
     '**/*.html':'ng-html2js'
   },

   ngHtml2JsPreprocessor: {
     prependPrefix: '/'
   },

   files : [
     'node_modules/jquery/**/*.js',
     'lib/angular/angular.js',
     'lib/angular/angular-*.js',
     '../test/lib/angular-mocks.js',
     '../test/lib/sinon-1.15.0.js',
     '../test/lib/chai.js',
     'js/**/*.js',
     '../test/unit/**/*.js',
     '**/*.html'
   ],

   autoWatch : true,

   frameworks: ['mocha','requirejs','chai'],

   browsers : ['Chrome'],

   plugins : [
     'karma-chrome-launcher',
     'karma-mocha',
     'karma-ng-html2js-preprocessor',
     'karma-requirejs',
     'karma-chai'
   ],

   junitReporter : {
     outputFile: 'test_out/unit.xml',
     suite: 'unit'
   }

 });

};

我的样本代码:::

'use strict';

describe('calendarHelper', function() {
   beforeEach(module('eventsApp'));

   it('should return January when given a zero',       inject(function(calendarHelper) {
      expect(calendarHelper.getMonthName(0)).toBe('January');
   }))
});

1 个答案:

答案 0 :(得分:0)

我遇到了与Jasmine类似的情况。 我想介绍一下我的解决方案。

尝试使用错误消息中的内容。有一个指向网站的链接:http://requirejs.org/docs/errors.html#notloaded

在您的spec文件中使用它:

//If this code is not in a define call,
//DO NOT use require('foo'), but use the async
//callback version:
require(['foo'], function (foo) {
    //foo is now loaded.
});

我在Coffeescript中为Jasmine和Sinon写的案例如下:

sinon = require(['sinon', 'jasmine-sinon']) (foo)->

现在我可以在单元测试中使用sinon作为对象,也可以使用sinon和jasmin-sinon的文档。