Angular 2 测试 - process.env

2024-01-04

我尝试在应用程序中模拟请求,但流程变量存在问题。我将后端 API 的 URL 存储在 process.env.backend Url 中。然后在休息服务中我有:

constructor(private http: Http) {
    this.rest = process.env.backendUrl + "/api/";
}

现在不可能运行测试,因为在例如 LoginComponent 中,我有 RestService 依赖项,并且出现此错误:

zone.js:140 Uncaught Error: Error in ./LoginComponent class LoginComponent_Host - inline template:0:0 caused by: process is not defined
ReferenceError: process is not defined
at new RestService (http://localhost:9876/base/src/test.ts:21595:2790)
at DynamicTestModuleInjector.get (DynamicTestModule.ngfactory.js:170:67)
at DynamicTestModuleInjector.get (DynamicTestModule.ngfactory.js:180:93)
at DynamicTestModuleInjector.getInternal (DynamicTestModule.ngfactory.js:255:51)
at DynamicTestModuleInjector.NgModuleInjector.get (http://localhost:9876/base/src/test.ts:25036:27)
at TestBed.get (http://localhost:9876/base/src/test.ts:5589:51)
at _View_LoginComponent_Host0.createInternal (LoginComponent_Host.ngfactory.js:16:74)
at _View_LoginComponent_Host0.AppView.create (http://localhost:9876/base/src/test.ts:36192:21)
at _View_LoginComponent_Host0.DebugAppView.create (http://localhost:9876/base/src/test.ts:36404:44)

I set process.env.backend URL在environment.ts(由 angular-cli 创建的文件)中。

process.env.backendUrl = 'http://localhost:8080';

export const environment = {
  production: false
};

我应该将它设置在其他地方还是有任何方法可以告诉业力这个变量?


如果您使用 Angular-cli,则只需添加backendUrl to the environment.

export const environment = {
  production: false,
  backendUrl: 'http://localhost:8080'
};

您还应该将其添加到environment.prod.ts文件,将 url 设置为生产 url。当您在生产中构建时,.prod将使用文件。

在您的文件中,您应该导入environment(来自environment.ts文件)并使用environment.backendUrl.

也可以看看:

  • 构建目标和环境文件 https://github.com/angular/angular-cli/wiki/build
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 测试 - process.env 的相关文章

随机推荐