我有一个应用程序在运行测试时引发奇怪的错误.错误如下:
TypeError: undefined is not a constructor (evaluating 'allKeys[i].match(/^[0-9]+$/)') in node_modules/jasmine-core/lib/jasmine-core/jasmine.js (line 2988) test/spec/core/http/response-spec.js:92:63 loaded@http://localhost:8080/context.js:151:17
大多数测试都通过了,但是很少有一些测试.这是打破的测试之一:
(function () { 'use strict'; describe('MyAccount.core.http.response',function () { var ResponseInterceptor = {},$httpProvider = {},$window = {},env = {},MessageQueue = {}; beforeEach(module('MyAccount.core.environment')); beforeEach(module('MyAccount.core.http',function (_$httpProvider_,$provide) { $httpProvider = _$httpProvider_; MessageQueue = { dispatch: jasmine.createSpy('dispatch') }; $window = { location: { href: jasmine.createSpy() } }; $provide.value('$window',$window); $provide.value('MessageQueue',MessageQueue); })); beforeEach(inject(function (_$window_,_ResponseInterceptor_,_env_) { $window = _$window_; ResponseInterceptor = _ResponseInterceptor_; env = _env_; })); describe('response status',function () { // Asserting that 404 and 403 errors are intercepted. angular.forEach([404,403],function (error) { describe('is ' + error,function () { beforeEach(function () { ResponseInterceptor.responseError({ status: error,data: { message: 'error ' + error } }); }); it('calls MessageQueue.dispatch with the error message',function () { expect(MessageQueue.dispatch).toHaveBeenCalledWith('error ' + error,{ on: 'global.errors' }); }); }); }); }); }); })();
我已经坚持了几个小时,似乎无法找到解决方案.以下是我正在使用的依赖项及其版本:
>因果报应:^ 1.2.0
> jasmine-core:^ 2.5.0
> karma-jasmine:^ 1.0.2
> karma-phantomjs-launcher:^ 1.0.2
> phantomjs:^ 2.1.7
注意:这是一个使用角度发生器的全新自耕农应用程序.