Ошибка теста Жасмин: Тайм-аут - асинхронный обратный вызов не был вызван в течение 5000 мс (устанавливается jasmine.DEFAULT_TIMEOUT_INTERVAL) - PullRequest
0 голосов
/ 25 сентября 2019

Я получаю исключение времени ожидания жасмина при выполнении следующего углового теста с использованием жасмина.Кто-нибудь может сказать мне причину?Это из-за настройки тайм-аута или теста, не зная, когда работа выполненаКак мне исправить эту проблему.Сначала в конфигурационном файле было 30000

Я пытался увеличить время ожидания в конфигурационном файле protractor.conf

 jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 40000,
    print: function() {}
  },

Test

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!')

    }));
});

1 Ответ

0 голосов
/ 26 сентября 2019

Я заметил, что вы пользуетесь многими услугами у провайдеров и не издеваетесь над ними, это может привести к появившейся у вас ошибке.Из официальной документации Angular:

Однако внедрение реального сервиса редко работает хорошо, так как большинство зависимых сервисов сложно создать и контролировать.

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

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

Так что если вам не нужно тестировать все этиуслуги, издевайтесь над ними.

class MockInactivityService {
}

... а затем у провайдеров:

providers: [
    {provide: InactivityService, useClass: MockInactivityService },
    ...
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...