Commits

Konstantine Rybnikov committed 943a83a

at last -- I reached part about unit-testing

  • Participants
  • Parent commits 6d4f440

Comments (0)

Files changed (1)

File source/launchpad/2012-08-06-uapycon-tdd/index.html

 - (вкратце разберем пример)
 - что такое фикстуры и в дополнение к ним -- фабрики (factory_boy)
 - фабрики умеют .create() и .build()
+- фабрики -- гарантия быстрого создания модели
 - относительно медленный, зато понятно как писать
 - (почти) прямая замена ручному тестированию
 - работая над API-centric приложением действительно видишь
 
 ---
 
+class: center, middle
+
 # А если у вас не API-centric приложение?
 
 <!--
 
 ---
 
+class: center, middle
+
 # Ручное тестирование на стероидах
 
 <!--
 - вообще опыт с функциональным тестированием -- в основном легкий, и
   сюрпризов в нём будет мало. зато много покрытия кода и быстро пишутся.
 - тем не менее -- часто больше походят на "пушкой по воробьям" (чем
-  дальше -- тем сильнее)
--->
-
----
-
-# Юнит-тесты
-
-<!--
-- в вебе никто не пишет юнит-тестов, потому что никто не умеет дружить
-  с сайд-эффектами
+  дальше -- тем сильнее. как и при ручном тестировании).
 -->
 
 ---
 
 class: center, middle
 
-# Функциональный тест
+# Интеграционные тесты
+
+<!--
+- берёте ваши фабрики и проверяете результат. некоторую часть
+  сайд-эффектов мокаете.
+- фичу не покрывают (всё равно нужны функ. тесты)
+- тоже всё относительно понятно. тоже долго запускать
+- => в основном для сложной бизнес-логики (и выборок)
+-->
 
 ---
 
 class: center, middle
 
+# Юнит-тесты
+
 <!--
+- наконец самое сложное
+- в вебе никто не пишет юнит-тестов, потому что никто не умеет дружить
+  с сайд-эффектами
+- поэтому первым делом нужно разобраться, как абстрагироваться от
+  всего, кроме нашего "юнита"
+-->
 
+---
+
+# Как выглядит юнит
+
+<!--
+- в питоне немного проще джавы в плане DI, потому не нужен boilerplate
+  `this.foo = foo`
+- четкое разделение бизнес-логики, моделей и выборок
+-->
+
+*[TODO]* та самая картинка с функцией и сайд-эффектами
+
+---
+
+class: center, middle
+
+# Культура
+
+<!--
 David Cramer -- DjangoCon 2012
 
 - в целом о докладе Крамэра -- мало интересного, как всегда показал
   тонну крутых тулз которые сам и написал, рассказал как всё покрыто
   тестами, запускающимися в кластере. Но главная мысль гениальна:
   главное -- культура (тестирования + код ревью)
-
 -->
 
-# Культура
-
 ---
 
 class: center, middle