UNIT TESTING ⚡️ Правильно внедряем unit-тесты в Unity проект

Опубликовано: 04 Октябрь 2024
на канале: K-Syndicate
12,902
487

Все вокруг говорят про Unit testing, что это полезно и круто, но есть ощущение, что только говорят, и никто толком не знает, что делать с этим юнит тестированием? :). В видео расскажем, как внедрить Unit тесты в свои Юнити - проекты, как перестать их бояться, и что делать, чтобы они наконец-то появились в developers team :)

Как перестать смотреть на юнит тест так, будто это замедляет разработку и начать использовать их для ее ускорения
Как внедрить юнит тесты в команде
Как начать их использовать на существующих Unity проектах
И в целом - как писать юнит-тесты, чтобы это было легко и удобно :)

Наш портал: https://lms.k-syndicate.school/?utm_s...
По всем вопросам: https://t.me/k_syndicate

==============================================
00:00 Начало
00:11 Приветствие
02:16 Тема трансляции
05:51 Немного теории
06:53 Как начать писать тесты?
09:24 Почему Алексей рекомендует ставить FluentAssertions
10:26 На что будем писать тест? Выбираем unit under test
16:18 Начинаем писать тест
18:57 Делаем live template для теста и обсуждаем для чего это нужно
19:59 Где добавлять новый лайв темплейт?
20:49 Чем помогает template?
21:15 Название теста. Зачем оно нужно? И его задача.
22:38 Где мы будем их использовать?
24:34 Пишем название для теста, начиная с When Act
25:36 And Arrange. Что это?
26:00 Что мы будем проверять?
27:49 Then Assert
28:30 Алгоритм написания теста
30:18 Чиним ошибки компиляции
31:30 Запускаем и смотрим вывод
34:00 Прописываем Act
36:14 Сетапим, stub-им и mock-аем
39:45 Общение с чатиком
39:49 Ответ на вопрос: Как быть если свойство инкапсулировано и доступен только для чтения?
41:34 Ответ на вопрос: Можно ли застабать синглтон?
43:49 Продолжаем сетапить тест
44:49 Запускаем. Проверяем. Исправляем
45:45 Логика алгоритма
46:56 Тест вроде как работает, но это не точно)
47:55 Проверяем тест на ложноположительность
49:34 Не бойтесь, что вы что то сломаете или забудете
50:12 Проверка на ложноотрицательность
51:06 Пример проблемного (хрупкого) теста
53:20 Так тесты это плохо? Они же мешают и замедляют разработку? Или все-таки нет?
54:49 Как придумать проверку
56:13 Еще один пример проблемного теста
59:40 Ответ на вопрос: Два assert в рамках одного теста нормальная практика?
01:01:36 Отвечаем на вопросы из чата
01:04:22 Еще раз алгоритм
01:05:16 Рефакторинг теста
01:09:26 Выносим Setup
01:12:45 Маленький и понятный тест
01:13:02 Проверяем что тест все еще тестирует
01:13:12 Отвечаем на вопросы из чата
01:17:34 Что нужно, чтобы признать тест рабочим? Возвращаемся к названию
01:19:45 Пример использования атрибутов Setup и Teardown
01:20:51 Ответ на вопрос: Есть ли тест SetUp?
01:21:13 Вроде готово, но...
01:22:35 Что нужно, чтобы улучшить читаемость? Логирование!
01:24:25 Тест готов!
01:24:31 Как тесты добавлять в проект и как быть с командой? Опыт работы
01:26:51 Как выбрать тест, который писать?
01:27:11 CI (Continuous Integration)
01:28:32 Отвечаем на вопросы из чата
01:35:01 Фреймворки, которые мы используем
01:35:35 Ответ на вопрос: Дело ж не в том, что пишется тест сначала? (Вопрос про TDD)
01:36:52 Ответ на вопрос: Парное программирование? (Реально работает)
01:39:05 Есть смысл тестов если нету максимального покрытия (Сoverage)
01:42:05 Ответ на вопрос: Нужны ли автоматизаторы для написания тестов?
01:45:12 Ответ на вопрос: Как перестать тестировать одну фичу?
01:46:49 Завершение стрима
==============================================

КУРС СРАБОТАЕТ ДЛЯ ВАС, ЕСЛИ

Вам надоело ощущение нестабильности и необходимость постоянно переписывать код инфраструктуры проекта
Вам постоянно неудобно добавлять новые модули в игру
Сталкиваетесь с проблемами порядка инициализации, когда что-то должно дожидаться другого, но явно это нигде не выражено
Непонятно как справится с огромным [модуль-нейм] Контроллером, который продолжает разрастаться
Синглтоны работали некоторое время, но теперь трещат по швам

На курсе вы полностью напишите достаточно объемный проект, весь его код, чтобы понимать все нюансы.

Среди прочего:
Разберемся с созданием удобного entry point-а для игры
Разберем идеологию Dependency Injection, напишем простейшую реализацию вручную, без библотек. Обсудим холивары и отследим переход к более продвинутым реализациям
Улучшим навыки сборки UI
Дополним инструментарий Editor-a
Разделаемся с нюансами сборки игры под разные платформы

И многое другое, чтобы сразу же использовать в своих текущих проектах или начать новые!

Запись наших вебинаров:    • DI + UNITY = ZENJECT ⚡️ Dependency in...  
Запись наших стримов:    • Стримы  


(18+)

#unity #gamedev #unittesting #unitytutorial