Mos*_*sar 2 testing mocking testbed angular
我尝试在我的应用程序中模拟请求,但是流程变量存在问题.我将process.env.backendUrl url存储在后端API中.然后在RestService我有:
constructor(private http: Http) {
this.rest = process.env.backendUrl + "/api/";
}
Run Code Online (Sandbox Code Playgroud)
现在不可能运行测试,因为在例如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)
Run Code Online (Sandbox Code Playgroud)
我在enviroment.ts(由angular-cli创建的文件)中设置了proccess.env.backendUrl.
process.env.backendUrl = 'http://localhost:8080';
export const environment = {
production: false
};
Run Code Online (Sandbox Code Playgroud)
我应该将它设置在其他地方还是有任何方法可以告诉业力这个变量?
如果你正在使用angular-cli,你应该添加backendUrl到environment.
export const environment = {
production: false,
backendUrl: 'http://localhost:8080'
};
Run Code Online (Sandbox Code Playgroud)
您还应该将其添加到environment.prod.ts文件中,将url设置为生产URL.在生产中构建时,.prod将使用该文件.
在您的文件中,您应该导入environment(从environment.ts文件中)并使用environment.backendUrl.
也可以看看:
| 归档时间: |
|
| 查看次数: |
2662 次 |
| 最近记录: |