Неверный спецификатор токена в angular файле модульного теста во время выполнения теста? - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть angular component с именем appointment, в котором я пишу unit-test в appointment.component.ts. Ниже приведен код тестового файла этого компонента

appointment.component.spec.ts

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule } from '@angular/forms'

import { HttpClientModule } from '@angular/common/http';
import { HTTPService, HelperService, DataService } from '../../../services';

import { AppointmentComponent } from './appointment.component';
import { CancelApptDialogComponent } from '../cancel-appt-dialog/cancel-appt-dialog.component';
import { UpdateApptDialogComponent } from 'app/modules/app-components/update-appt-dialog/update-appt- 
dialog.component';
import { ReminderItemComponent } from './../reminder-item/reminder-item.component';

import { AutoCompleteModule } from 'primeng/autocomplete';
import { CheckboxModule } from 'primeng/checkbox';
import { NgxMaskModule } from 'ngx-mask';

import { CookieModule, CookieService } from 'ngx-cookie';
import { ToastrModule, ToastrService } from 'ngx-toastr';

import { DialogService } from 'primeng/dynamicdialog';
import { DynamicDialogRef } from 'primeng/dynamicdialog';
import { DynamicDialogConfig } from 'primeng/dynamicdialog';
import { CalendarModule } from 'primeng/calendar';

import { SharedModule } from './../../shared/shared.module';


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

 beforeEach(async(() => {
  TestBed.configureTestingModule({
   declarations: [
      AppointmentComponent, 
      CancelApptDialogComponent, 
      UpdateApptDialogComponent,
      ReminderItemComponent
    ],
  imports: [
    BrowserAnimationsModule,
    FormsModule,
    AutoCompleteModule,
    CheckboxModule,
    NgxMaskModule.forRoot(),
    HttpClientModule,
    RouterTestingModule,
    SharedModule,
    CookieModule.forRoot(),
    ToastrModule.forRoot(),
    CalendarModule
  ],
  providers: [
    HTTPService,
    HelperService,
    DataService,
    DialogService,
    DynamicDialogRef,
    DynamicDialogConfig,
    CookieService,
    ToastrService,
   ]
 })
  .compileComponents();
}));

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

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

});

Когда я запускаю тест, он выдает ошибку, подобную этой

InvalidTokenError: Invalid token specified

enter image description here

Что вызывает эту ошибку?

1 Ответ

0 голосов
/ 05 апреля 2020

Просто смейся над твоими услугами, как показано ниже. Это не те сервисы, которые вы добавили, возьмите это в качестве примера и выполните такие действия в вашем коде, как это

 const dialogServiceSpy = createSpyObj<DialogService>(['open']);
  const dialogRefSpy = createSpyObj<MatDialogRef<any>>(['close']);
 .........................

 providers: [ 
        { provide: DialogService, useValue: dialogServiceSpy },
        { provide: MatDialogRef, useValue: dialogRefSpy },
        { provide: MAT_DIALOG_DATA, useValue: {} },
        ]

, предоставьте все требуемые сервисы и удалите ненужные сервисы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...