Your SlideShare is downloading. ×
Melhorando Testes No Django Com O Model Mommy
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Melhorando Testes No Django Com O Model Mommy

3,447

Published on

Palestra sobre a lib Model Mommy com descrição e exemplos de código sobre a sua utilização na criação de objetos representando models durante os testes do Django

Palestra sobre a lib Model Mommy com descrição e exemplos de código sobre a sua utilização na criação de objetos representando models durante os testes do Django

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,447
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
23
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Melhores Testes no Django Apresentado o Model Mommy Bernardo Fontes @bbfontes
  • 2. @bbfontes – bernardofontes.net – github.com/berinhard
  • 3. Por que testar?
  • 4. https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commit/a047be85247755cdb e0acce6f1dafc8beb84f2ac
  • 5. http://gizmodo.com/5048411/bsod-repeatedly-strikes-nine-inch-nails-concerts
  • 6. Testes não são garantias
  • 7. Testes não são garantias, mas são excelentes indicadores
  • 8. Por que falar sobre testes?
  • 9. Só escrever testes não basta
  • 10. Teste também é código!
  • 11. I'm watching!
  • 12. Código deve ser fácil de ler.
  • 13. Código deve ser fácil de ler. Testes também!
  • 14. Código deve ser fácil de entender.
  • 15. Código deve ser fácil de entender. Testes também!
  • 16. Código deve ser fácil de manter.
  • 17. Código deve ser fácil de manter. Testes também!
  • 18. Organização básica de um método de teste
  • 19. No Django
  • 20. 1 – Configuração inicial do cenário de teste
  • 21. No Django
  • 22. 2 – Execução da funcionalidade
  • 23. No Django
  • 24. 3 – Asserções de validação
  • 25. No Django
  • 26. Tópico do dia: configuração inicial do cenário de teste com a criação de modelos no Django
  • 27. Model core.Person
  • 28. Solução 1 - Criação dos objetos manualmente
  • 29. Repetição de código em vários testes
  • 30. Difícil manutenção
  • 31. Solução 2 - Uso de fixtures para popular o banco previamente
  • 32. $ python manage.py dumpdata core.Person >> core/fixtures/persons.json [{"pk": 1, "model": "core.person", "fields": {"bio": "Veio de algum lugar e foi para lugar nenhum", "appointment": "2013-07-02T18:30:32.960Z", "name": "Bernardo", "gender": "M", "age": 24, "blog": "http://bernardofontes.net", "birthday": "1988-09-22", "birth_time": "16:15:00", "nickname": "berinhard", "happy": false}}]
  • 33. Gera trabalho externo aos testes
  • 34. Gera acoplamento externo aos testes
  • 35. Difícil manutenção depois de alterações nos models
  • 36. Difícil manutenção depois de alterações nos models DeserializationError: Problem installing fixture '/home/bernardo/virtualenvs/moveleiro s/project/src/core/fixtures/persons.j son': Person has no field named u'birthday'
  • 37. Solução 3 - Model Mommy https://github.com/vandersonmota/model_mommy
  • 38. pip install model_mommy https://pypi.python.org/pypi/model_mommy
  • 39. API para criar instâncias de models de maneira rápida baseada em valores aleatórios
  • 40. Model core.Person
  • 41. Método make básico
  • 42. Método make básico
  • 43. Método make com sobreescrita
  • 44. Método prepare
  • 45. Criando vários objetos
  • 46. Model core.Dog
  • 47. Método make para FK
  • 48. Método make com sobreescrita de FK
  • 49. Método make com FK lookup
  • 50. Método prepare com FK
  • 51. Model core.Store
  • 52. Objetos com relações ManyToMany
  • 53. API para criar instâncias de models de maneira rápida baseada em valores definidos por você evitando repetição de código
  • 54. mommy_recipes.py da app
  • 55. Definição de um Recipe
  • 56. Criando objetos com o make_recipe
  • 57. Sobreescrita com o make_recipe
  • 58. Vários objetos com o make_recipe
  • 59. Sem persistência com o prepare_recipe
  • 60. Recipes com FK
  • 61. Recipes com callables
  • 62. Suporte a Custom Fields
  • 63. Sequences para campos unique
  • 64. Ajude-nos a matar issues
  • 65. Dê sua opinião e mande dúvidas da lista http://bit.ly/12MU9Pv
  • 66. Obrigado!!! Bernardo Fontes falecomigo@bernardofontes.net http://bernardofontes.net http://github.com/berinhard http://twitter.com/bbfontes

×