Javascript 导入angular jasmine测试用例中的应用程序常量错误
在component.spec中导入组件时,endponitConfig将显示错误为ReferenceError:endponitConfig未定义 component.tsJavascript 导入angular jasmine测试用例中的应用程序常量错误,javascript,angular,jasmine,karma-jasmine,Javascript,Angular,Jasmine,Karma Jasmine,在component.spec中导入组件时,endponitConfig将显示错误为ReferenceError:endponitConfig未定义 component.ts import { Component, Type, OnInit, ViewEncapsulation, ViewChild } from '@angular/core'; import { Router } from '@angular/router'; import { Http, Response, Headers
import { Component, Type, OnInit, ViewEncapsulation, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { Http, Response, Headers } from '@angular/http';
import { DriverService } from '../../services/driver.service';
import { endponitConfig } from '../../../../environments/endpoints';
@Component({
templateUrl: './drivers.list.component.html',
})
export class DriversListComponent {
//calling const form endpoint file
let driverEndpoint=endponitConfig.DRIVER_API_ENDPOINT;
//logic
}
ReferenceError: endponitConfig is not defined
at Plugin.init (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:145039:22)
at new Plugin (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:144781:14)
at HTMLElement.<anonymous> (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:146128:48)
at Function.each (http://localhost:9876/base/node_modules/jquery/dist/jquery.min.js?1055018c28ab41087ef9ccefe411606893dabea2:2:2715)
at r.fn.init.each (http://localhost:9876/base/node_modules/jquery/dist/jquery.min.js?1055018c28ab41087ef9ccefe411606893dabea2:2:1003)
at r.fn.init.Array.concat.$.fn.(anonymous function) [as jarvisWidgets] (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:146123:21)
at WidgetsGridComponent.Array.concat.WidgetsGridComponent.ngAfterViewInit (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:128191:51)
at callProviderLifecycles (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11542:18)
at callElementProvidersLifecycles (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11517:13)
at callLifecycleHooksChildrenFirst (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11501:17)
其中endpoints.ts包含
export const endponitConfig: any = {
// Custom URL End Points
LOAD_API_ENDPOINT: '/dashboard/api/loadAppointments/',
LOAD_APPOINTMENT_API_ENDPOINT:'/dashboard/api/loadAppointmentType/',
DRIVER_API_ENDPOINT: '/dashboard/api/drivers/',
};
组件规范ts
import { MockBackend } from '@angular/http/testing';
import { ModalDirective } from 'ngx-bootstrap';
import { DriverService } from '../../services/driver.service';
import { CommonModule, } from '@angular/common';
import { BaseRequestOptions, XHRBackend, Http, HttpModule } from '@angular/http';
import { SmartadminModule } from "../../../shared/smartadmin.module";
import { SmartadminDatatableModule } from "../../../shared/ui/datatable/smartadmin-datatable.module";
import { DataTableModule } from "angular2-datatable";
import { RouterTestingModule } from '@angular/router/testing';
import { Router, ActivatedRoute } from "@angular/router";
import { routing } from '../../drivers.routing';
import { ComponentLoaderFactory } from 'ngx-bootstrap';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { DebugElement, NO_ERRORS_SCHEMA } from '@angular/core';
import { DriversListComponent } from './drivers.list.component';
import { MyDatePickerModule } from 'mydatepicker';
import { SelectModule } from 'angular2-select';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CoreModule } from "../../../core/core.module";
import { BrowserModule } from '@angular/platform-browser';
import { endponitConfig } from '../../../../environments/endpoints';
let MockDriverArray = [
{
"id": 22,
"firstName": "Aaron",
"lastName": "Maisie",
"email": "aaron@test.net",
"phoneNumber": "2602185194",
}
];
describe('Driver list component', () => {
let driverListComponent: DriversListComponent;
let fixture: ComponentFixture<DriversListComponent>;
let router: Router;
let driverService, mockBackend;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [DriversListComponent],
imports: [SmartadminModule,
SmartadminDatatableModule,
MyDatePickerModule,
CommonModule,
SelectModule,
ReactiveFormsModule,
FormsModule,
// routing,
DataTableModule,
MyDatePickerModule,
BrowserModule,
// Error500Module,
CoreModule,
HttpModule,
RouterTestingModule.withRoutes([{
path: '', component: DriversListComponent
}])],
schemas: [NO_ERRORS_SCHEMA],
providers: [
DriverService,
MockBackend,
{ provide: XHRBackend, useClass: MockBackend }
]
})
.compileComponents();
router = TestBed.get(Router);
fixture = TestBed.createComponent(DriversListComponent);
driverListComponent = fixture.componentInstance;
driverService = TestBed.get(DriverService);
mockBackend = TestBed.get(MockBackend);
fixture.detectChanges();
}));
it('Driver Service should be defined', () => {
expect(driverService).toBeDefined();
});
it('Driver list page is loaded', () => {
expect(driverListComponent).toBeTruthy();
});
describe('Functional', () => {
it('should navigate to the update page for the driver.id of the driver passed in.', () => {
spyOn(router, 'navigate');
driverListComponent.goToUpdateDriverDetials(MockDriverArray[0]);
expect(router.navigate).toHaveBeenCalled();
expect(router.navigate).toHaveBeenCalledTimes(1);
expect(router.navigate).toHaveBeenCalledWith(['/drivers/updateDriver', MockDriverArray[0].id]);
});
})
});
从'@angular/http/testing'导入{MockBackend};
从“ngx引导”导入{ModalDirective};
从“../../services/driver.service”导入{driversservice};
从“@angular/common”导入{CommonModule,};
从'@angular/Http'导入{BaseRequestOptions,XHRBackend,Http,HttpModule};
从“../../../shared/smartadmin.module”导入{SmartadminModule};
从“../../../shared/ui/datatable/smartadmin datatable.module”导入{SmartadminDatatableModule}”;
从“angular2 datatable”导入{DataTableModule};
从“@angular/router/testing”导入{RouterTestingModule};
从“@angular/Router”导入{Router,ActivatedRoute}”;
从“../../drivers.routing”导入{routing};
从“ngx引导”导入{ComponentLoaderFactory};
从“@angular/core/testing”导入{async,ComponentFixture,TestBed};
从“@angular/platform browser”导入{By}”;
从“@angular/core”导入{DebugElement,无_错误_模式};
从“./drivers.list.component”导入{DriversListComponent};
从“mydatepicker”导入{MyDatePickerModule};
从'angular2 select'导入{SelectModule};
从'@angular/forms'导入{FormsModule,ReactiveFormsModule};
从“../../../core/core.module”导入{CoreModule};
从“@angular/platform browser”导入{BrowserModule};
从“../../../../environments/endpoints”导入{endponitConfig};
让MockDriverArray=[
{
“id”:22,
“名字”:“亚伦”,
“姓氏”:“梅西”,
“电子邮件”:aaron@test.net",
“电话号码”:“2602185194”,
}
];
描述('驱动程序列表组件',()=>{
让driverListComponent:driverListComponent;
let夹具:组件夹具;
让路由器:路由器;
让driverService,mockBackend;
beforeach(异步(()=>{
TestBed.configureTestingModule({
声明:[DriversListComponent],
导入:[SmartadminModule,
SmartadminDatatableModule,
MyDatePickerModule,
公共模块,
选择模块,
反应形式模块,
FormsModule,
//路线,
DataTableModule,
MyDatePickerModule,
浏览器模块,
//错误模块,
核心模块,
HttpModule,
RouterTestingModule.withRoutes([{
路径:“”,组件:DriversListComponent
}])],
模式:[无错误模式],
供应商:[
驾驶员服务,
模拟后端,
{provide:XHRBackend,useClass:MockBackend}
]
})
.compileComponents();
路由器=测试台.get(路由器);
fixture=TestBed.createComponent(DriversListComponent);
driverListComponent=fixture.componentInstance;
driverService=TestBed.get(driverService);
mockBackend=TestBed.get(mockBackend);
fixture.detectChanges();
}));
it('应定义驱动程序服务',()=>{
expect(driverService.toBeDefined();
});
它('已加载驱动程序列表页',()=>{
expect(driverListComponent.toBeTruthy();
});
描述('功能',()=>{
它('应该导航到传入的驱动程序的driver.id的更新页面。',()=>{
间谍(路由器,“导航”);
goToUpdateDriverDetials(MockDriverArray[0]);
expect(router.navigate).tohavebeencall();
期望(router.navigate).toHaveBeenCalledTimes(1);
期望(router.navigate).toHaveBeenCalledWith(['/drivers/updateDriver',MockDriverArray[0].id]);
});
})
});
执行spec文件时,它抛出一个错误ReferenceError:endponitConfig未定义
import { Component, Type, OnInit, ViewEncapsulation, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { Http, Response, Headers } from '@angular/http';
import { DriverService } from '../../services/driver.service';
import { endponitConfig } from '../../../../environments/endpoints';
@Component({
templateUrl: './drivers.list.component.html',
})
export class DriversListComponent {
//calling const form endpoint file
let driverEndpoint=endponitConfig.DRIVER_API_ENDPOINT;
//logic
}
ReferenceError: endponitConfig is not defined
at Plugin.init (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:145039:22)
at new Plugin (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:144781:14)
at HTMLElement.<anonymous> (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:146128:48)
at Function.each (http://localhost:9876/base/node_modules/jquery/dist/jquery.min.js?1055018c28ab41087ef9ccefe411606893dabea2:2:2715)
at r.fn.init.each (http://localhost:9876/base/node_modules/jquery/dist/jquery.min.js?1055018c28ab41087ef9ccefe411606893dabea2:2:1003)
at r.fn.init.Array.concat.$.fn.(anonymous function) [as jarvisWidgets] (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:146123:21)
at WidgetsGridComponent.Array.concat.WidgetsGridComponent.ngAfterViewInit (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:128191:51)
at callProviderLifecycles (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11542:18)
at callElementProvidersLifecycles (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11517:13)
at callLifecycleHooksChildrenFirst (http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11501:17)
ReferenceError:未定义endponitConfig
在Plugin.init(http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:145039:22)
在新插件上(http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:144781:14)
在HTMLElement。(http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:146128:48)
在功能上,每个(http://localhost:9876/base/node_modules/jquery/dist/jquery.min.js?1055018c28ab41087ef9ccefe411606893dabea2:2:2715)
在r.fn.init.每个(http://localhost:9876/base/node_modules/jquery/dist/jquery.min.js?1055018c28ab41087ef9ccefe411606893dabea2:2:1003)
在r.fn.init.Array.concat.$.fn.(匿名函数)[作为jarvisWidgets](http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:146123:21)
位于WidgetsGridComponent.Array.concat.WidgetsGridComponent.ngAfterViewInit(http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:128191:51)
在callProviderLifecycles(http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11542:18)
在callElementProvidersLifecycles(http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11517:13)
在callLifecycleHooksChildrenFirst(http://localhost:9876/base/src/test.ts?32930bead8e68a3814014a7f2e341a3b291fe038:11501:17)
请帮忙
对于angular中的单元测试用例来说是新的您将其声明为
export const endponitConfig
,但是您确实声明了endponitConfig.DRIVER\u API\u ENDPOINT='/DRIVER'
,我认为这是一个问题。我已经更新了代码。为测试目的,指定了常数。。仍然是同一个问题..你能不能也发布你的错误的跟踪信息。。帮帮我。对不起,我没有访问图像(公司代理)的权限。及