При использовании TestBed
вы действительно проводите модульное тестирование компонента или проводите интеграционные тесты?
Создание прибора (TestBed.createComponent(AppComponent)
) и вызов fixture.detectChanges()
автоматически вызывают ngOnInit
.Если вы хотите протестировать другой метод, вы сейчас тестируете несколько модулей.
Это приводит к другому вопросу: должны ли вы тестировать модули или тестировать действия пользователя?Например, если вы тестируете метод setDimensions
, или если вы проверяете, что когда пользователь нажимает на определенную кнопку, элемент, помимо прочего, имеет соответствующие размеры.
Я думаю, первый способ тестированиябудет ближе к «модульному тестированию», но тогда вам все равно придется иметь дело с методами жизненного цикла вызываемого компонента.Это заставляет меня думать, что нет способа выполнить модульные тесты компонента с использованием TestBed
.Заглушка всех методов жизненного цикла кажется нелепой.
Какой бы способ вы ни решили проверить, вам также следует проверить DOM, не так ли?Тогда вы не тестируете изолированно, включая DOM API.