BDD com Python,
Facilite a vida de todos!
Daniel Bastos
http://daniellbastos.com.br
https://fb.com/danielfbastos
danielfloresbastos@gmail.com
51 99384-2797
Apresentação
Programador Python
Freelancer
Acadêmico
Organização de eventos:
PySM (2014/2015)
Trilha de Python (TDC 2014/2015)
Aviso importante
"Sisteminha" para gerenciar
meus clientes
O Problema do telefone sem fio
Desenvolvedor
Cliente
Projeto de exemplo com Django
Projeto de exemplo com Django
CRUD
clients/views.py
clients/forms.py
clients/urls.py
Projeto de exemplo com Django
CRUD
templates/clients/client_form.html
templates/clients/client_list.html
TDD
- Reduz bugs em produção
- Facilita a escrita de código
- Da confiança ao realizar alterações
- Feedback rápido
TDD
Cenário 1:
Permitir desativar os clientes do sistema
TDD com Django
TDD com Django
clients/managers.py
clients/models.py
TDD com Django
clients/factories.py
clients/tests.py
TDD com Django
TDD
Cenário 2:
Permitir a remoção lógica dos clientes do sistema
TDD com Django
clients/models.py
clients/factories.py
TDD com Django
TDD com Django
TDD Win!!
Analisando um arquivo de teste
BDD
- Reduz ruído entre cliente e desenvolvedores
- Facilita o entendimento das features
- Padroniza a comunicação cliente/desenvolvedores
- Foco na funcionalidade e não na unidade
-
Dado que... Indica o cenário atual
-
Quando... Indica alguma ação do usuário/sistema
- Então... Indica como o software de reagir
Existem algum padrão de escrita?
Sim, mas eu entendo isso mais como um guia
Há também os operadores E e OU
BDD
BDD
BDD
BDD
Rodando os cenários: ./manage.py behave
BDD
Rodando os cenários: ./manage.py behave
BDD
BDD
Cenário 3:
Permitir visualizar clientes inativos
BDD
BDD
clients/views.py
clients/urls.py
clients/templates/clients/client_list.html
BDD
SPLINTER_DRIVER=firefox ./manage.py behave
Conclusão
BDD com Python - PyCaxias 2018
By Daniel Bastos
BDD com Python - PyCaxias 2018
PyCaxias 2018/11/10
- 841