TDD & Python

Escrevendo código simples e com qualidade

Bianca Rosa

Dev@Stone Pagamentos

Programo principalmente em...

  • Python
  • GoLang
  • JS

Bianca Rosa

Dev@Stone Pagamentos

Gosto de...

  • DevOps
  • Data Science
  • Cerveja

Vamos falar de TDD?

1. O mais difícil é começar

2. Existe uma curva de aprendizado

3. Mas demora muito! :(

O mindset

Nenhuma linha de código pode existir sem antes existir um teste pra ela

NENHUMA.

TDD te obriga a pensar.

Como eu faço?

API Docs


mkdir group-orders-api
cd group-orders-api
git init
git remote add origin ...
git pull origin master
mkdir tests
mkdir tests/functional
touch tests/functional/groups_test.py
virtualenv venv
source venv/bin/activate
pip install pytest
pip freeze > requirements.txt
git add -A
git commit -m "Add first tests"
			

Realmente aumenta o tempo de desenvolvimento?

É a única forma de conseguir ter um código bom e bem testado?

Coverage como consequência

O valor dos testes unitários

O valor dos testes de integração

O valor dos testes funcionais

O valor dos testes de aceitação

Precisamos ir dormir tranquilos

Mocks são legais, mas...

Obey the testing goat!

http://www.obeythetestinggoat.com/

Polêmica

https://www.thoughtworks.com/pt/insights/blog/mockists-are-dead-long-live-classicists

Links

http://tdd.caelum.com.br/ https://martinfowler.com/bliki/TestDrivenDevelopment.html https://tableless.com.br/tdd-por-que-usar/

twitter: @__biancarosa

código: github.com/biancarosa/group-orders-api

tks :)