使用茉莉花运行以下角度测试时,我遇到了茉莉花超时异常。有人可以告诉我原因吗?是由于超时配置还是测试不知道何时完成工作。我该如何解决此问题。最初在配置文件中是30000
我试图增加protractor.conf的配置文件中的超时时间
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 40000,
print: function() {}
},
测试
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
HttpClientModule,
FormsModule,
RouterTestingModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useClass: TranslateLanguageLoader
}
}),
NgxDatatableModule,
ToastaModule.forRoot(),
TooltipModule.forRoot(),
PopoverModule.forRoot(),
ModalModule.forRoot()
],
declarations: [
AppComponent,
LoginComponent,
LoadingElementComponent,
NotificationsViewerComponent
],
providers: [
InactivityService,
MonitoringEndpoint,
MonitoringService,
AuthService,
AlertService,
ConfigurationService,
AppTitleService,
AppTranslationService,
NotificationService,
NotificationEndpoint,
AccountService,
AccountEndpoint,
LocalStoreManager,
EndpointFactory,
TraderActionsService,
MonitoringService,
MonitoringEndpoint
],
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));
it('should create the app', async(() => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy()
}));
xit(`should have as title 'Argentex'`, async(() => {
const fixture = TestBed.createComponent(AppComponent);
const app = <AppComponent>fixture.debugElement.componentInstance;
expect(app.appTitle).toEqual('Argentex')
}));
xit('should render Loaded! in a h1 tag', async(() => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector('h1').textContent).toContain('Loaded!')
}));
});
答案 0 :(得分:0)
我注意到您在提供程序中使用了许多服务,并且没有对它们进行模拟,这可能会导致您遇到错误。从官方的Angular文档中:
但是,注入真实的服务很少能很好地工作,因为大多数依赖的服务很难创建和控制。
相反,您可以模拟依赖项,使用虚拟值或在相关服务方法上创建间谍。
首选间谍,因为它们通常是模拟服务的最简单方法。
因此,如果您不需要测试所有这些服务,请对它们进行模拟。
class MockInactivityService {
}
...,然后在提供程序中:
providers: [
{provide: InactivityService, useClass: MockInactivityService },
...
]