#angular #karma-jasmine
Вопрос:
Я новичок в модульном тестировании и хотел бы создать набор модульных тестов для директивы angular, который установит фокус формы на первое недопустимое поле. Может ли кто-нибудь предоставить мне модульный тест, и это поможет мне изучить Карму.
import { Directive, HostListener, ElementRef } from '@angular/core';
@Directive({
selector: '[focusInvalidInput]'
})
export class FocusFormDirective {
constructor(private el: ElementRef) {}
@HostListener('submit')
onFormSubmit() {
const invalidControl = this.el.nativeElement.querySelector('.ng-invalid');
if (invalidControl) {
invalidControl.focus();
}
}
}
Комментарии:
1. Что вы уже написали до сих пор?
Ответ №1:
Вы хотите использовать свой модульный тест для проверки входных данных пользователя?
В этом случае я не думаю, что модульные тесты являются хорошим решением (даже если использование директивы может быть хорошим). Модульные тесты часто используются с поддельными данными в потоке непрерывной интеграции (CI).
Вы должны использовать модульный тест для проверки надлежащего поведения вашей формы перед развертыванием решения — после изменений в вашем приложении. Даже если это не связано с вашей формой, чтобы убедиться, что вы ничего не сломали.
Модульное тестирование проводится разработчиками на этапе разработки (кодирования) приложения. Модульные тесты выделяют раздел кода и проверяют его правильность. Единицей может быть отдельная функция, метод, процедура, модуль или объект.
Определение Guru99
Смотрите этот ответ : Как и когда правильно использовать модульное тестирование
Комментарии:
1. Нет. Я хочу модульно протестировать функцию onFormSubmit()
2. О, в таком случае я не знаю, как вы могли бы связать
onFormSubmit()
свое приложение с остальной частью в тесте — цель модульного тестирования состоит в том, чтобы отделить ваш метод от остальной части кода, чтобы обрабатывать его индивидуально