它适用于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');
}))
});
答案 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的文档。