簡體   English   中英

導入角度測試

[英]Imports on angular tests

我有一個有角度的項目,有一個要測試的組件。現在這個組件有一個submodule.ts,項目有一個通用的module.ts,還有一個test.module.ts。 其中每個示例:

submodule.ts,是一些組件共享的模塊。

 import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { RouterModule } from '@angular/router'; import { OncosupSharedModule } from '../../shared'; import { ProtocoloService, ProtocoloPopupService, ProtocoloComponent, ProtocoloDetailComponent, ProtocoloDialogComponent, //testing only this componnet ProtocoloPopupComponent, ProtocoloDeletePopupComponent, ProtocoloDeleteDialogComponent, protocoloRoute, protocoloPopupRoute, ProtocoloResolvePagingParams, } from './'; const ENTITY_STATES = [ ...protocoloRoute, ...protocoloPopupRoute, ]; @NgModule({ imports: [ OncosupSharedModule, RouterModule.forChild(ENTITY_STATES) ], declarations: [ ProtocoloComponent, ProtocoloDetailComponent, ProtocoloDialogComponent, ProtocoloDeleteDialogComponent, ProtocoloPopupComponent, ProtocoloDeletePopupComponent, ], entryComponents: [ ProtocoloComponent, ProtocoloDialogComponent, //I am only testing this componnet ProtocoloPopupComponent, ProtocoloDeleteDialogComponent, ProtocoloDeletePopupComponent, ], providers: [ ProtocoloService, ProtocoloPopupService, ProtocoloResolvePagingParams, ], schemas: [CUSTOM_ELEMENTS_SCHEMA] 

我對所有項目的general.module.ts

 @NgModule({ imports: [ BrowserModule, OncosupAppRoutingModule, Ng2Webstorage.forRoot({ prefix: 'jhi', separator: '-'}), OncosupSharedModule, OncosupHomeModule, OncosupAdminModule, OncosupAccountModule, OncosupEntityModule, FormsModule, ReactiveFormsModule, // jhipster-needle-angular-add-module JHipster will add new module here ], declarations: [ JhiMainComponent, NavbarComponent, ErrorComponent, PageRibbonComponent, ActiveMenuDirective, FooterComponent ], providers: [ ProfileService, PaginationConfig, UserRouteAccessService, { provide: HTTP_INTERCEPTORS, useClass: AuthExpiredInterceptor, multi: true, deps: [ StateStorageService, Injector ] }, { provide: HTTP_INTERCEPTORS, useClass: ErrorHandlerInterceptor, multi: true, deps: [ JhiEventManager ] }, { provide: HTTP_INTERCEPTORS, useClass: NotificationInterceptor, multi: true, deps: [ Injector ] } ], bootstrap: [ JhiMainComponent ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class OncosupAppModule {} 

而我的test.module僅用於測試:

 @NgModule({ providers: [ DatePipe, JhiDataUtils, JhiDateUtils, JhiParseLinks, { provide: JhiLanguageService, useClass: MockLanguageService }, { provide: JhiLanguageHelper, useClass: MockLanguageHelper }, { provide: JhiEventManager, useClass:  MockEventManager }, { provide: NgbActiveModal, useClass: MockActiveModal }, { provide: ActivatedRoute, useValue: new MockActivatedRoute({id: 123}) }, { provide: Router, useClass: MockRouter }, { provide: Principal, useClass: MockPrincipal }, { provide: AccountService, useClass: MockAccountService }, { provide: LoginModalService, useValue: null }, { provide: ElementRef, useValue: null }, { provide: Renderer, useValue: null }, { provide: JhiAlertService, useValue: null }, { provide: NgbModal, useValue: null }, ], imports: [HttpClientTestingModule, FormsModule, ReactiveFormsModule, RouterModule, RouterTestingModule ], schemas: [ CUSTOM_ELEMENTS_SCHEMA ] }) 

現在,我只想測試共享submodule.ts的compoonets之一。 提供程序,方案和導入yes可以導入,但是entryComponents例如會出錯。 我想知道是否有什么規則應該導入什么以及從哪個模塊導入?

在子組件中,僅導入組件使用的模塊。

如果導入大模塊,則將導入其中聲明的每個模塊以及其中的每個組件,提供程序,指令,管道(等) 想象一下模擬所有這些的時間...

對於entryComponents ,有一種特殊的語法。 我在Angualr Material的模態測試中找到了它,坦率地說,我現在不想搜索源,因此您必須相信我的想法:

TestBed
  .configureTestingModule(...)
  .overrideModule(BrowserDynamicTestingModule, { set: { entryComponents: [UploadModalComponent] } })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM