模块“ngMockE2E”不可用!AngularJS.

Module 'ngMockE2E' is not available! AngularJS

本文关键字:AngularJS ngMockE2E 模块      更新时间:2023-09-26

在我的浏览器中收到以下错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module sayHiApp due to:
Error: [$injector:modulerr] Failed to instantiate module ngMockE2E due to:
Error: [$injector:nomod] Module 'ngMockE2E' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.2.15/$injector/nomod?p0=ngMockE2E
    at http://127.0.0.1:9000/bower_components/angular/angular.js:78:12
    at http://127.0.0.1:9000/bower_components/angular/angular.js:1611:17
    at ensure (http://127.0.0.1:9000/bower_components/angular/angular.js:1535:38)
    at module (http://127.0.0.1:9000/bower_components/angular/angular.js:1609:14)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3717:22
    at Array.forEach (native)
    at forEach (http://127.0.0.1:9000/bower_components/angular/angular.js:323:11)
    at loadModules (http://127.0.0.1:9000/bower_components/angular/angular.js:3711:5)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3718:40
    at Array.forEach (native)
http://errors.angularjs.org/1.2.15/$injector/modulerr?p0=ngMockE2E&p1=Error…ngular%2Fangular.js%3A3718%3A40%0A%20%20%20%20at%20Array.forEach%20(native)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:78:12
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3745:15
    at Array.forEach (native)
    at forEach (http://127.0.0.1:9000/bower_components/angular/angular.js:323:11)
    at loadModules (http://127.0.0.1:9000/bower_components/angular/angular.js:3711:5)
    at http://127.0.0.1:9000/bower_components/angular/angular.js:3718:40
    at Array.forEach (native)
    at forEach (http://127.0.0.1:9000/bower_components/angular/angular.js:323:11)
    at loadModules (http://127.0.0.1:9000/bower_components/angular/angular.js:3711:5)
    at createInjector (http://127.0.0.1:9000/bower_components/angular/angular.js:3651:11)
http://errors.angularjs.org/1.2.15/$injector/modulerr?p0=sayHiApp&p1=Error%…F%2F127.0.0.1%3A9000%2Fbower_components%2Fangular%2Fangular.js%3A3651%3A11) angular.js:78

我的应用程序.js如下所示:

'use strict';
angular
  .module('sayHiApp', [
    'ngCookies',
    'ngMockE2E',
    'ngResource',
    'ngSanitize',
    'ngRoute'
  ])
  .config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'views/main.html',
        controller: 'MainCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });
  })
  .run(function($httpBackend) {
    var name = '';
    $httpBackend.whenPOST('/name').respond(function(method, url, data) {
      name = angular.fromJson(data);
      return [200, name, {}];
    });
    $httpBackend.whenGET('/name').respond(name);
  });

我错过了什么吗?

angular.mocks.js文件由许多有助于模拟和测试的模块组成。最常用的是ngMockngMockE2E它为一些最常用的组件提供了模拟,例如$timeout, $rootScope, $controller, $httpBackend($httpBackend是ngMockE2E的一部分)。

为了将这些模块中的任何一个用作依赖项,您需要加载angular.mocks.js。只需将此脚本添加到您的 html 文件中即可删除[$injector:modulerr]这是当找不到添加为依赖项的模块或其文件未加载时导致的错误

我只添加使用$httpBackend,所以只需要"ngMocksE2E"模块,所以我做了:

import angular from 'angular';
// it exports moduleName that is 'ngMockE2E'
import ngMockE2EModuleName from 'angular-mocks/ngMocksE2E.js';
export default angular.module('app', [ngMockE2EModuleName]);