Прежде всего, я все еще изучаю основы Angular 4 в рамках стажировки, которую я делаю; это все еще ново для меня.
В любом случае, я хочу смоделировать ошибку для фактического HTTP-запроса, который я делаю в контроллере компонента Angular, после чего я могу проверить, появляется ли предупреждение об ошибке Bootstrap. (давайте предположим, что он находится в div с идентификатором "updateErrorMessage") Вместо того, чтобы программировать серверную часть для немедленного возврата ответа об ошибке, я хочу использовать среду тестирования Jasmine и Karma, чтобы смоделировать ее.
Я не могу точно сказать, что это за компонент, но более общим будет, например, выполнение запроса PUT для обновления таблицы лиц в базе данных Salesforce Industries данными JSON из компонент под названием «UpdateIndividualsPage.»
Исходя из этого вопроса для разработчиков Salesforce здесь , и этой страницы документации , шаблонный код для выполнения запроса в функции компонента выглядит примерно так:
this.http.post("https://na7.salesforce.com/services/apexrest/clinic01/v1/individual/", this.myJSON, options).map(response => {
}).catch((error: any) => {
}).subscribe();
где при ответе с ошибкой я бы установил
errorOccurredUponUpdatingIndividualsDatabase = true
при условии, что 'errorOccuredUponUpdatingIndividualsDatabase' является свойством в компоненте UpdateIndividualsPage.
В файле updateindividualspage.component.spec.ts, вложенном в вызов функции description, я бы хотел, чтобы шаблон контрольного примера был примерно таким:
it('should display update error message upon sending improper data to Salesforce database', () => {
});
По сути, последним вызовом функции в моем тесте будет
expect(root_Element_Of_Component.querySelector('#updateErrorMessage').innerText).toBe('Error occurred upon updating the Salesforce Industries individuals database.');
Я прочитал некоторые другие вопросы Stackoverflow о создании фиктивной ошибки HTTP, но я не совсем уверен, потому что, опять же, я все еще новичок в этом.
Жасмин / Карма тестирование Angular 5 HTTP-ответов
макет http запроса в Angular 4
Как тестировать ошибку http в Angular 5?
Я попробовал что-то похожее на последний тестовый пример в исходном коде, заданном в этом вопросе StackOverflow , за исключением того, что я получаю только "Неудачно: ожидается один соответствующий запрос для критериев ...", что означает, что У меня несоответствие URL.
Есть ли способ для этого тестового примера отправить фактический HTTP-запрос на этот сервер, но эта тестовая среда создает ложный ответ? Или мне действительно нужно создать экземпляр MockBackend и заставить его отправить ошибку в виде HTTP-ответа обратно во внешний интерфейс, чтобы поднять флаг errorOccurnUponUpdatingIndividualsDatabase для отображения предупреждения Bootstrap?
Кстати, бэкэнд уже реализован.