【问题标题】:$httpbackend from ngMockE2E never calledngMockE2E 的 $httpbackend 从未调用过
【发布时间】:2013-06-03 05:00:33
【问题描述】:

我正在尝试进行一些后端 e2e 测试,因此我需要模拟 API 调用。 这是我所做的:

angular.module('foo.bar.e2eConf', ['foo.bar', 'ngMockE2E']).
  run(function($httpBackend) {
    $httpBackend.whenGET('/foo/bar').respond({foo:'bar'});
  });

然后我像这样配置我的conf/karma.e2e.conf(路径没问题):

var basePath = '../';
var files = [
  ANGULAR_SCENARIO,
  ANGULAR_SCENARIO_ADAPTER,
  // bower libs
  'components/angular/index.js',
  'components/jquery/jquery.js',
  'components/angular-resource/index.js',
  'components/angular-mocks/index.js',
  'components/chai/chai.js',
  'test/chai.conf.js',
  'src/app/**/*.js',
  {pattern:'src/app/**/partials/*.tpl.html', included:false},
  'test/e2e/**/*.js'
];
var singleRun = false;
var browsers = ['Chrome'];
var proxies = {'/': 'http://localhost:8000/'};

我可以运行不涉及 API 调用的测试,但是当我运行涉及它的测试时,我会得到一个不错的 Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:9876/foo/bar

我想我错误配置了一些东西,但我不知道是什么??

代理和模拟之间是否存在冲突?即代理 /foo/barhttp://localhost:8000/foo/bar 而不是使用模拟?

有什么想法吗?

问候

泽维尔

【问题讨论】:

    标签: angularjs karma-runner


    【解决方案1】:

    您需要创建一个启动 foo.bar.e2eConf 模块的应用版本,而不是启动 foo.bar 模块。

    您必须在应用索引页面中包含 javascript 文件 angular-mocks.js 和您在上面定义的新模块。

    您应该能够在 Karma 之外进行测试,只需使用这个新应用并看到它从您的模拟中返回数据。

    您可能不需要将这些文件的一半添加到 Karma 配置中。这只是为了将文件添加到测试场景中。它会将您的应用加载到 iframe 中,而您的应用负责加载它自己的 javascript。

    我使用 php 为应用程序的任一版本提供服务器,具体取决于我使用的 URL:使用 api 调用的真实版本或使用模拟的 e2e 版本。

    【讨论】:

    • 嗨,谢谢,所以我只需要更改为 angular.module('foo.bar', ['ngMockE2E']).run(...) 并将其包含到 index.html 中? (加上所需的部门)
    • 谢谢,根据您的评论,我了解到我使用 ngMockE2E::$httpBackend 制作了一个最小项目的 e2e 测试:github.com/xseignard/e2eMock 我仍然需要有条件地将测试脚本放在 html 中,任何想法关于如何实现?还是使用 angular.bootstrap 的更清洁的方式?见:github.com/xseignard/e2eMock/blob/master/src/index.html#L18
    • 我打算将其用于条件导入:stackoverflow.com/questions/12401998/…
    • 应该可以。我从 php 提供我的 Angular 应用程序,所以我有条件代码。
    猜你喜欢
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 2017-08-27
    相关资源
    最近更新 更多