Угловая труба не может быть найдена в тесте Жасмин - PullRequest
1 голос
/ 20 июня 2019

Я получаю сообщение об ошибке при использовании Jasmine для проверки одного из моих угловых 6 компонентов:

Не удалось найти трубу 'paginate' ("] Элемент activityLogDisplay.data | paginate: config; let index= index "(click) ="): ng: ///DynamicTestModule/ActivitylogComponent.html@59: 34 'pagination-controls' не является известным элементом:

Я использую модуль NgxPaginationModule, который я установил сследующая команда:

npm install ngx-pagination --save

Итак, обратите внимание, что я не использую пользовательский канал, который создал сам, я использую тот, который принадлежит загруженному пакету. Мой компонентный тест не проходитиспользование канала, а не тестирование самого канала. Вот как выглядит использование пагинации в моем html-шаблоне:

 <li class="list-group-item list-group-item-action" 
    *ngFor="let alItem of activityLogDisplay.data | paginate: config; let index = index" 
    (click)="toggleALView(alItem.index)">

Вот как выглядит мой файл spec.ts (довольно многоиз коробки):

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ActivitylogComponent } from './activitylog.component';

describe('ActivitylogComponent', () => {
  let component: ActivitylogComponent;
  let fixture: ComponentFixture<ActivitylogComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ ActivitylogComponent ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(ActivitylogComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

Я попытался добавить импорт NgxPaginationModule в файл spec.ts:

import { NgxPaginationModule } from 'ngx-pagination';

И я включил его в область объявленийКонфигурация TestBed:

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ ActivitylogComponent, NgxPaginationModule ]
    })
    .compileComponents();
  }));

сообщение об ошибке меняется на:

Failed: Unexpected module 'NgxPaginationModule' declared by the module 
'DynamicTestModule'. Please add a @Pipe/@Directive/@Component annotation.

В моем файле app.module.ts у меня есть NgxPaginationModule, указанный в массиве импорта, а не в массиве объявлений:

import { NgxPaginationModule } from 'ngx-pagination';

@NgModule({
  declarations: [
    AppComponent,
    ActivitylogComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpClientModule,
    NgxPaginationModule,
    RouterModule.forRoot(appRoutes,{useHash:true})
  ],
  providers: [IndexService, AdminIndexService],
  bootstrap: [LandingpageComponent]
})

Любые идеичто мне нужно сделать, чтобы этот тест заработал?

1 Ответ

0 голосов
/ 21 июня 2019

Разобрался с моей проблемой. Мне нужно было добавить NgxPaginationModule в качестве импорта в тестовую зону configureTestingModule в моем файле спецификации:

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports : [
        NgxPaginationModule
      ],
      declarations: [ 
        ActivitylogComponent
       ]
    })
    .compileComponents();
  }));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...