2016-12-22 7 views
4

Я получаю сообщение об ошибке при создании экземпляра тестового компонента.Неожиданное значение «DecoratorFactory», импортированное модулем «DynamicTestModule» - karma-jasmine

let comp: TaskviewComponent; 
let fixture: ComponentFixture; 
let deTaskTitle: DebugElement; 
let elSub: HTMLElement; 

describe('TaskviewComponent',() => { 

    beforeEach(() => { 
     TestBed.configureTestingModule({ 
      declarations: [ 
       TaskviewComponent 
      ], 
      imports: [ 
       NgModule, 
       RouterTestingModule, 
       TranslateModule.forRoot(), 
      ], 
      providers: [ 
       RestDataService, 
       Restangular, 
      {provide: OAuthService, useClass: OAuthServicMock}, 
      {provide: ComponentFixtureAutoDetect, useValue: true}, 
      {provide: UserInfoService, useClass: UserInfoServiceMock}, 
      { 
       provide: LocalStorageService, //provide: LOCAL_STORAGE_SERVICE_CONFIG, 
       useValue: { 
        prefix: ApplicationConstants.ANGULAR2_LOCAL_STORAGE_ID, 
        storageType: 'sessionStorage' 
       } 
      }],, 

    }) 
      fixture = TestBed.createComponent(TaskviewComponent); 
      comp = fixture.componentInstance; 
      deTaskTitle = fixture.debugElement.query((By.css('.Subject'))); 
      elSub = deTaskTitle.nativeElement; 

}); 

it('should have a subject',() => { 
    expect(elSub.textContent).toContain('Client Data Maintenance2 '); 
}); 
}); 

Я получаю ошибки: Неожиданное значение «DecoratorFactory» импортируется модулем ошибки «DynamicTestModule». Я замечаю, что если я удалю «fixture = TestBed.createComponent (TaskviewComponent)»; ошибка будет решена. но это не создаст тестовый компонент. Кроме того, я замечаю, что если я не включу NgModule в import [], такие элементы, как Ngmodel, datepicker и т. Д., Не распознаются.

ответ

1

Вы не можете импортировать «NgModule», поскольку это декоратор, а не модуль.

+0

Если вы используете Bootstrap 4 для Angular и Emmet, Emmet может иметь autopopulated NgModule, и вы приняли его вместо NgbModule. Как вы можете видеть, они близки к написанию, так что это может произойти. Это то, что я сделал, подумал, что я поделюсь, если у кого-то еще будет эта проблема. –