Git, Git Flow, TDD #3 - Введение в TDD и тестирование в Python

preview_player
Показать описание
Мои курсы:
Boosty:

Patreon:

Разработка через тестирование (TDD) - зачем нужно писать тесты, зачем писать тесты до основного кода. Небольшой пример написания функции в стиле TDD. Используется фреймворк Unittest на Python 3.

Разработка через написание тестов (TDD) проходит через три стадии:

Red, Green, Refactoring

RED. Написали тест к функционалу, которого еще нет. Запустили - он провалился.

GREEN. Написали целевую (тестируемую) функцию. Задача на этом этапе сделать так, чтобы функция проходила тест. После того, как функция (или класс) - unit'ы, пройдут тест, переходим к следующему этапу.

REFACTORING. Нужно привести функцию в порядок, сделать более универсальной, упростить если нужно и т.п. Словом, рефакторинг. Запустили тесты - проходят? Делаем комит. Если нет - правим баги, благо с тестами это делать проще.

Это третья часть из трех, посвященных этой теме.

1. Основы Git - что такое Git, принцип его работы, создание репозитория, добавление файлов, создание комитов, залив проекта на github (push)
2. Git Flow - принципиальная схема при работе с ветками с ветками Git. Как создавать ветки, переключаться между ними, сливать ветки. Merge, rebase.
3. Введение в TDD - строго говоря, TDD не относится к работе с Git'ом, но, тем не менее, больше нет TDD без Git'а или любой другой системы контроля версий исходного кода.

*** ИСХОДНЫЙ КОД ***
Основных проектов доступен в Patreon:
***

------

Все видео серии:

Git, Git Flow, TDD #1 - Что нужно знать о работе с Git

Git, Git Flow, TDD #2 - Git Flow: Основы работы с ветками в Git

Git, Git Flow, TDD #3 - Введение в TDD и тестирование в Python

Обязательно подпишитесь на канал!

------

🔷 Для донатов. Всегда очень признателен за это:
Рекомендации по теме
Комментарии
Автор

Отличное видео. Спасибо! Был бы благодарен, если бы бы развернутая серия по тестам.

schrittweise
Автор

О господи, единственное понятное видео о тестах на ютубе! Спасибо!

jamesmiller
Автор

Очень крутые видео! Было бы здорово увидеть аналогичную серию по хукам.

tokid
Автор

Спасибо за видео. Очень жду серию про тестирование и серию про докер.

LazySnake
Автор

Спасибо большое за внятный материал! Хоть сам и прогаю на C#, было очень интересно и главное, понятно.

Mr
Автор

Как всегда на высоте!
Олег, я вот тут книжечку купил занимательную "Python Разработка на основе тестирования" Гарри Персиваль. Но не все получается, а спросить не у кого...
Было бы круто, если бы ты со своим талантом преподавателя сделал бы курс по TDD на ее основе. Я бы купил не парясь тысяч за 5-7. А если бы курсы открыл с выдачей видеоматериалов, домашек и консультациями по скайпу, например - думаю, что легко бы набрал группу желающих и там уже около 15000 мог бы собирать. Запиши ролик-опросник - полагаю моя просьба найдет поддержку. Заодно и цену предложенную исследуешь. По TDD лично я ничего не нашел из наших инфобизнесменов.

viktorskurko
Автор

Очень интересно было бы посмотреть еще про тестирование, особенно на pytest

Игорь-пфе
Автор

Отличные видео, спасибо. Сможете еще по Докеру сделать?

dobr.dennis
Автор

видео про GIT - да
видео про TDD - да

Вот тебе тест кейс, подумай где он упадет)

dmmeteo
Автор

Полезное видео. Хотелось бы добавить, что, наверное, не следует возвращать ноль если на вход пришла строка. С одной стороны, конечно, функция получилась бронебойная, а с другой стороны получился JS)

vanya
Автор

Спасибо за уроки. Но есть вопросы, не показано, каким образом осуществлять "откат" на предыдущие версии. Например, и как при слиянии отказаться от каких то изменений.

ИгорьУ-ей
Автор

Не могу понять, как это работает, ведь os.getcwd() вернёт абсолютный путь к директории tests. По логике вещей тут должно быть что-то типа

Arseniysham
Автор

Если бы еще проджакт менеджеры понимали всю необходимость тестирования, а то "это же трата времени"

acerrusm
Автор

у меня не импортировалось как у автора:
import sys
sys.path.append('../')
этот код решил проблему, и только один модуль пришлось импортировать.

warnabas
Автор

у меня эта конструкция не работала
sys.path.append(os.getcwd())
from main import *
сработала
from testing.main import *

alexed
Автор

можете как нибудь убрать звуки нажатие клавиш клавиатуры?
И еще почему не юзаете автодополнение даже в баше

NMelis
Автор

Что то не догнал почему это в гит флоу

maxyc.webber
Автор

видосы олега нравятся, но честно, по тестам очень слабо

hopelesssuprem