Обработчик насмешливого улова в угловом модульном испытании с MockBackend - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть метод в сервисе, который выглядит следующим образом:

public reset(id: string): Promise<boolean> {
    const options = new RequestOptions();
    options.body = { id };

    return this.httpClient.delete(`${this.url}/items`, options)
        .map((response) => (response.json())).toPromise()
        .catch(_ => Promise.reject(false));
}

Я пытаюсь написать модульный тест, чтобы гарантировать, что в случае возникновения исключения Обещание отклоняется с false.

Я использовал MockBackend и придумал что-то вроде:

it('should fail to reset', async () => {
    // Arrange
    backend.connections.subscribe((connection: MockConnection) => {
        const options = new ResponseOptions({
            status: 404
        });
        connection.mockError(new Error('Error'));
    });

    // Act
    const result = await service.reset('1234');

    // Assert
    expect(result).toBeUndefined();
}); 

Мой обработчик catch не выполняется, и вместо этого я вижу:

at ZoneQueueRunner.attrs.onException
HeadlessChrome 68.0.3440 (Windows 10.0.0) MyService should fail to reset

at ZoneQueueRunner.attrs.onException (webpack:///./node_modules/zone.js/dist/zone-testing.js?:575:33)
at ZoneDelegate.invoke (webpack:///./node_modules/zone.js/dist/zone.js?:387:26)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...