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

Like this? Share it with your network

Share

Melhorando Testes No Django Com O Model Mommy

on

  • 3,262 views

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

Statistics

Views

Total Views
3,262
Views on SlideShare
1,131
Embed Views
2,131

Actions

Likes
1
Downloads
16
Comments
0

6 Embeds 2,131

http://ericstk.wordpress.com 2024
https://twitter.com 75
https://ericstk.wordpress.com 25
http://digg.com 3
https://www.google.com.br 3
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Melhorando Testes No Django Com O Model Mommy Presentation 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