Я сталкиваюсь с этой ошибкой при написании теста для директивы (используя generator-angular-module
):
ЦСИ /capitalize.js:
'use strict';
angular.module('jviotti.string', []).filter('capitalize', function() {
return function(input) {
return input.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
};
});
тест/спецификации/capitalize.js:
'use strict';
describe('Filter: capitalize', function () {
// load the controller module
beforeEach(module('jviotti.string'));
var capitalize;
beforeEach(inject(function($filter) {
capitalize = $filter('capitalize');
}));
it('should capitalize a string', function () {
expect(capitalize('hello')).toBe('Hello');
});
});
Однако при запуске Karma с PhantomJS я получаю:
PhantomJS 1.9.2 (Mac OS X) Filter: capitalize should capitalize a string FAILED
TypeError: Attempted to assign to readonly property.
at workFn (/Users/jviotti/Projects/angular-string/bower_components/angular-mocks/angular-mocks.js:2107)
TypeError: 'undefined' is not a function (evaluating 'capitalize('hello')')
at /Users/jviotti/Projects/angular-string/test/spec/capitalize.js:14
PhantomJS 1.9.2 (Mac OS X): Executed 2 of 2 (1 FAILED) (0.1 secs / 0.017 secs)
Что мне не хватает?