首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从未调用过来自ngMockE2E的$httpbackend

从未调用过来自ngMockE2E的$httpbackend
EN

Stack Overflow用户
提问于 2013-06-07 09:11:58
回答 1查看 2K关注 0票数 1

我正在尝试做一些后端的e2e测试,所以我需要模拟API调用。下面是我所做的:

代码语言:javascript
复制
angular.module('foo.bar.e2eConf', ['foo.bar', 'ngMockE2E']).
  run(function($httpBackend) {
    $httpBackend.whenGET('/foo/bar').respond({foo:'bar'});
  });

然后我像这样配置我的conf/karma.e2e.conf (路径是ok的):

代码语言:javascript
复制
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/bar代理到http://localhost:8000/foo/bar,而不是使用模拟?

有什么想法吗?

问候

泽维尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-07 15:57:13

您需要创建应用程序的一个版本来引导foo.bar.e2eConf模块,而不是引导foo.bar模块。

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

你应该能够通过使用这个新的应用程序并看到它从你的mock返回数据来在Karma之外测试这一点。

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

根据我使用的URL,我使用php为应用程序的两个版本提供服务器:要么是使用api调用的真实版本,要么是使用模拟的e2e版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16974750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档