Прошу прощения, если это не подходящий вопрос, но у меня возникли проблемы с тем, чтобы понять, как реализовать автоматический тест для функции сохранения в приложении, над которым я работаю. Я не уверен, следует ли мне проводить модульное тестирование или тестирование e2e. Пользователь заполняет обязательные поля в форме и нажимает кнопку сохранения. Оттуда данные, введенные пользователем, отправляются на сервер и возвращаются на главную страницу приложения; данные пользователя отображаются на этой странице. Любое руководство в правильном направлении было бы замечательно! Спасибо. Если это поможет, я включил код, который спасает пользователя. Опять же, я не уверен, следует ли мне провести модульное тестирование или e2e-тестирование, учитывая, что мне нужно заполнить всю форму, прежде чем нажимать кнопку «Сохранить». Еще раз, спасибо.
saveUser() {
this.user = this.userForm.getRawValue();
var url = AppConfig.URL_AddUser;
var isToEdit = false;
this.user.UserID = this.userId;
console.info(this.user);
this.httpClient.post(url, JSON.stringify(this.user), httpOptions)
.catch((error: Response | any) => {
this.showAlertWindow(this.exceptionMessage);
console.error(error.message || error);
return Observable.throw(error.message || error);
})
.subscribe((res: any) => {
console.info(res);
if (res == "DuplicateEmailAddress")
this.showAlertWindow("This email address is already exists.");
else if (res == "success")
this.dialogRef.close({ success: "success", isToEdit: isToEdit });
});
}





Хотя мнения о тестировании различаются, в данном случае Я бы рекомендовал использовать тест e2e. Это просто вопрос времени. Вы экономите время, не теряя тестового покрытия. Потому что вы покрываете и логику, и уровень представления в одном тесте.
Это правда, что создание тестов e2e может занять очень много времени, но обычно вы все равно должны их выполнять, и пока вы проектируете их таким образом, чтобы они вызывали все ваши методы хотя бы один раз, вы не сделаете ничего плохого.
Конечно! Должен ли я в моем тесте транспортира проверять, обновлялась ли DOM при добавлении нового пользователя?
Да, это хорошая практика. Каждый раз, когда я добавляю какие-либо объекты в существующую структуру, я потом проверяю, была ли информация успешно сохранена и отображается ли она на странице.
Попался, ценю ответ. Поэтому для данных внешнего интерфейса, если у меня есть время, я должен использовать e2e (транспортир в моем случае). Для Back-end, я думаю, более подходящими будут юнит-тесты. Еще раз спасибо :)
Есть ли у кого-нибудь из вас пример использования транспортира для проверки этого поведения? this.dialogRef.close ({успех: "успех", isToEdit: isToEdit}); Некоторое время я пытался проверить информацию из dialogRef.close (), и мне не удалось получить доступ к этой информации. Заранее благодарим, если у вас есть предложения.
Извините, но у меня нет подходящего примера.
Спасибо за понимание. Поскольку функция сохранения также использует несколько сервисов (экспорт данных после их отправки), я чувствую, что тест e2e был бы более подходящим. Спасибо!