Karma 意外请求:GET modules/home/home.html

Karma Unexpected Request: GET modules/home/home.html

我刚刚将我的应用程序从使用 Jade 模板引擎切换为使用客户端 HTML 以提高性能并减少服务器请求。应用程序中一切正常,但我在更新单元测试时遇到问题。

我有以下测试:

describe('Registration Controller Tests', function() {
  var $controller, $scope, defer, registerSpy, doesUserExistSpy, auth, RegistrationCtrl;

  beforeEach(module('enigmaApp'));

  beforeEach(inject(function (_$controller_, _$rootScope_, $q) {
    $controller = _$controller_;
    $scope = _$rootScope_;
    defer = $q.defer();

    // Create spies
    registerSpy = jasmine.createSpy('register').and.returnValue(defer.promise);
    doesUserExistSpy = jasmine.createSpy('doesUserExist').and.returnValue(defer.promise);

    auth = {
      register: registerSpy,
      doesUserExist: doesUserExistSpy
    };    

    // Init register controller with mocked services and scope
    RegistrationCtrl = $controller('RegistrationCtrl', {
      $scope: $scope,
      auth: auth
    });

    // digest to update controller with services and scope
    $scope.$digest();
  }));

  describe('RegistrationCtrl.register()', function () {
    beforeEach(function () {
      $scope.user = {
        email: 'bwayne@wayneenterprise.com',
        first_name: 'Bruce',
        last_name: 'Wyane',
        password: 'password123'
      }
    });

    it('should call auth.register() with $scope.user', function () {
      $scope.register();
      expect(auth.register).toHaveBeenCalledWith($scope.user);
    });
});

这会导致以下错误:

Error: Unexpected request: GET modules/home/home.html
No more requests expected

有什么想法可以模拟路线吗?我已经尝试了一些东西,但到目前为止没有任何效果。

补充代码:

注册控件

 .controller('RegistrationCtrl', function($scope, $state, auth) {
     $scope.user = {};
     $scope.userExists = false;
     $scope.error = '';

     $scope.register = function() {
       auth.register($scope.user)
       .then(function(response){
         $state.go('secure.user'); 
       })
       .catch(function(err){
         $scope.error = err;
       });
     };
 });

假设你的静态文件都在 /modules:

$httpBackend.whenGET(/modules\/[\w\W]*/).passThrough();