Download - Иван Гришаев «Тонкости тестирования» (Python Meetup)

Transcript
Page 1: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Тонкости тестированияИван Гришаев, питон-разработчик

Page 2: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

ТестыСтабильностьПредотвратить эффект бабочкиРост числа тестов окупаетсяБыстро что-то потеститьМного не бывает

Page 3: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

МинусыНе спасают от ошибокЗанимают времяНужно поддерживатьЛожное покрытие

Page 4: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

ТребованияПроверять что-то одноПокрывать всю логикуАтомарностьНе перекрыватьсяВнятно говорить, что не такЛегко поддерживать

Page 5: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

ПроцессВместе с таской пишется тестБаг начинается с тестаПрогон тестов перед пушем

Page 6: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Главное — честностьНе использует ту же логикуОдноразовые данныеНезависимость от окружения, настроек

Page 7: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Базовый класс

Делать его сразуКопить все полезноеМиксины

Page 8: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Базовый класс

Page 9: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Покрытие

Page 10: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

ПокрытиеMust-haveОтчет может вратьСмотрите только на красное

Page 11: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Покрытие

Page 12: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

assertNumQueries

Должен быть в тестеВ т.ч. для провеки кэша

Page 13: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Моки

Псевдо-объекты для тестирования

Page 14: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Моки“Замокать”Что мокаем: сеть, файлы, время, рандомПроверяем число вызовов, аргументы

Page 15: Иван Гришаев  «Тонкости тестирования» (Python Meetup)
Page 16: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

И еще

PEP8flake8не pyflakes

Page 17: Иван Гришаев  «Тонкости тестирования» (Python Meetup)

Спасибо!Вопросы?