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