ngMockE2E - 添加到依赖项后出错

时间:2014-11-20 17:48:06

标签: angularjs

将ngMockE2E添加到依赖项后,页面出错并且无法加载视图html

Error: Unexpected request: GET views/main.html
No more request expected

我的依赖项:

angular
  .module('mockApp', [
    'ngAnimate',
    'ngCookies',
    'ngResource',
    'ngRoute',
    'ngSanitize',
    'ngTouch',
    'ngMockE2E'
  ])

没有最后一行一切正常

我已将文件添加到index.html并使用bower加载库。我可以在run方法中打印$ httpBackend并打印源代码

.run(function($httpBackend, $log) {
  $log.debug('got there backend: ' + $httpBackend);
});

3 个答案:

答案 0 :(得分:1)

我发现了什么是错的。

创建模拟后,您需要绕过模型页面(在我的项目中,有.html文件),使用:

app.run(function($httpBackend) {
    ...
    $httpBackend.whenGET(/\.html$/).passThrough();
    ...
}

答案 1 :(得分:1)

您需要在所有模拟请求之后为模板定义传递(请参阅official API reference for $httpBackend)。

给定一个名为 my-app 的模块和一个包含所有模板的文件夹 views ,此代码可以解决您的问题。

angular.module('my-app').run(function($httpBackend) {

    [ . . . $httpBackend requests . . . ]    

    $httpBackend.whenGET(/^views\/.*/).passThrough();  

    [ . . . remaining logic, but no $httpBackend requests . . . ]

});    

答案 2 :(得分:0)

尝试加载类似下面的内容。

var myApp = angular.module('myApp', []);

如果

,这样可以正常工作
var myApp = angular.module('myApp', ['ngMockE2E']);

但不是

myApp.run(function ($httpBackend) {

    $httpBackend.whenGET(new RegExp('app\/.*')).passThrough();

});

没有控制台错误,没有渲染视图。为避免这种情况使用

parseDelimitedFrom

此行允许您请求为包含app /作为文件夹根目录的每个资源传递。