Мне не всегда нравились тесты, я думал, что они утомительны и отнимают время, которое я мог бы вложить в разработку и создание нового интересного приложения, просто проверяя, что мой код хорош. И как говорил мой друг:

Я вообще не пишу ошибок

Все шло хорошо, пока кодовая база моей команды не выросла намного (более 100 тысяч строк исходного кода согласно Sloc), и я обнаружил, что все больше и больше работаю над ошибками и пытаюсь понять, когда и почему изменилось какое-то поведение.

Итак, мы начали писать некоторые конвейеры с большим количеством тестов Python и некоторыми тестами Angular и увидели, что, хотя наши тесты Python действительно имели большую ценность и предотвращали множество ошибок, наши тесты Angular были менее эффективны в поиске следующей ошибки.

Почему так сложно тестировать и находить ошибки?

На мой взгляд, это по одной основной причине:

Angular - это все о состоянии

Когда вы создаете компонент, который является частью другого компонента, и вы проверяете только свой метод компонента, этого недостаточно. Обычно вам нужно проверить общую картину и проверить состояние вашего приложения.

И это становится сложнее, когда ваше приложение больше и использует больше управления состоянием, например Ngrx Store, или службы с состоянием.

Итак, объяснив, как мы перешли от нежелания тестов к желанию тестов, но не смогли написать тесты, которые будут иметь значение, я теперь объясню три (или более) способа написания тестов, а также их преимущества и недостатки.

1. Использует модульное тестирование.

2. Тестирование Ngrx Store.

3. Компонентное тестирование.

Пожалуйста, дайте мне знать, какой из трех интереснее.
И не забывайте хлопать, если вам понравилось 👏

Первый в сети: