Ключевые моменты: #unit_testing #unit #tests #xunit #Visual_Studio #autofixure #moq #nimble #ASP.NET_Core #live_unit_testing #abstraction #interface #EntityFramework_Core #unit_of_work
Unit-тестирование, принципы, подходы, правила, договоренности - это не полный список ключевых понятий, которые будут озвучены в этом видео. А также один короткий анекдот. Основа изложения - концепция "Хорошо" и "Правильно".
[01:48] Плохо если…
1) Я не могу писать unit-тесты.
2) Я не могу написать тест, потому что метод является статичным, или не возвращает результат, или приватный (static/void/private).
3) Мои тесты выполняются слишком долго.
4) Мои тесты не проходят если база данных, или web-сервис, или другая система (database/web-service/system) выключены или не доступны.
[02:37] Хорошо если…
1) Unit-тесты выполняются быстро (fast).
2) Unit-тесты изолированы от каких-либо внешних зависимостей (isolated).
3) Unit-тесты легко повторяются (repeatable).
4) Unit-тесты должны быть сами себя контролировать (self-checking).
5) Unit-тесты должны быть «уместными», то есть не должны требовать много времени на поддержку работоспособности (timely).
[04:40] Правильно, если писать тесты:
1) [04:59] Ваш код будет покрыт «проверочным кодом».
2) [05:12] Вы будете знать как писать код «правильно», то есть код будет менее связанным.
3) [06:03] Вы упростите интеграцию нового функционала.
4) [06:57] Вы защищены от регрессии при написания кода.
5) [07:10] У вас появится дополнительная защита при публикации (CI/DC).
6) [08:33] Сокращается время на функциональное тестирование.
7) [08:59] Ваша совесть будет чиста :)
[09:17] Если писать правильные тесты
I. [09:57] Именование тестов:
1) имя тестируемого метода;
2) сценарий в котором выполняется тестирование;
3) ожидаемое поведение при вызове сценария
II. [10:27] Arrange, Act, Assert: Меньше путаницы
III. [12:14] Минимализм при написание тестов – признак мастерства:
1) тесты более устойчивы к изменениям;
2) ближе к тестированию поведения чем к реализации.
IV. [14:24] Именование переменных в тестах: упрощение понимания при чтении.
Благодарности и помощь каналу принимаются:
[ Ссылка ]
Ещё видео!