无法使用生成版本导入Angular MockBackend

时间:2017-06-19 16:06:47

标签: angular testing mocking

我在Angular应用程序中实现了一个模拟后端。这个模拟后端用于端到端测试。

我使用工厂创建实际的http后端服务或模拟后端服务。基本上它检查这是否是生产版本,如果是,它将返回http后端服务,否则返回模拟后端服务。

简化此工厂功能如下所示:

import {
    RequestMethod,
    Http,
    XHRBackend,
    BaseRequestOptions,
    RequestOptions,
    Response,
    ResponseOptions
} from "@angular/http";

import { MockBackend, MockConnection } from "@angular/http/testing";

function backendFactory(mockBackend: MockBackend,
        options: BaseRequestOptions,
        realBackend: XHRBackend) {
    if(!useMockBackend) {
        console.log("Configuring real HTTP backend...");
        return new Http(realBackend, options);
    }

    console.log("Configuring mock HTTP backend...");

    // Listen to incoming requests and send mock data

    return new Http(mockBackend, options);
}

当我在生产版本中运行此代码时,出现以下错误:Uncaught Error: Cannot find module "@angular/http/testing/src/mock_backend"

我猜测Angular会删除生产版本中的某些模块以减少网络/应用程序的大小。但是我无法找到有关此过程的更多信息。有谁知道这是否可以禁用?

环境:

  • Angular 4.0.0
  • Ionic 2.2.2
  • Lubuntu 14.04
  • 节点6.9.0

1 个答案:

答案 0 :(得分:1)

尝试将角度版本升级到4.1.2。这个问题固定在angular> 4.1.2。

更多信息 https://github.com/angular/angular/issues/15521#issuecomment-290118657