Django Object factory

960 views

Published on

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

  • Be the first to like this

No Downloads
Views
Total views
960
On SlideShare
0
From Embeds
0
Number of Embeds
101
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Django Object factory

  1. 1. Testes com Django e Object FactoryII Pylestras Palestrante Italo Maia http://www.italomaia.com/ http://www.python.org.br http://pug-ce.python.org.br
  2. 2. Testes!
  3. 3. Software com Testes é+ Caro+ Trabalhoso+ Barato+ Confiável+ Fácil evoluir+ Trabalho em equipe TDD TDD
  4. 4. “Mas eu não gosto de escrever testes!”por Desenvolvedor Genérico
  5. 5. Não Tolere Isso!Código  sem  testes é  ruim  para  todo mundo!
  6. 6. Há motivos para não  gostar de testes... + Uma ferramenta para aprender + Código para escrever + Precisa configurar o ambiente + Demora
  7. 7. E o Python? [1]DocTestTestes  embutidos  no próprio código.Prático  para  testar funções simples.
  8. 8. E o Python? [2]UnitTestTestes  escritos  em módulos próprios.Código  organizado  e extensível.
  9. 9. UnitTest
  10. 10. Django, Testes e Você UnitTest Extendido Integração com Aplicativos Integração com o Models Banco de Testes Isolado Testes Por Aplicativo
  11. 11. Como Faz? Testes ficam no tests.py projeto → app O Django te permite rodar  → → __init__.py testes  por  projeto,  → → models.py aplicativo,  TestCase  ou  → → tests.py Método.  → → views.pyO comando abaixo executa os testes para vocêpython manage.py test [aplicativo[.TestCase[.metodo]]]
  12. 12. Massa! E Qual o  Problema?Os dados do banco são limpos  Fixturea cada teste.Se  quiser  popular  o  banco  JSONautomaticamente você precisa  YAMLutilizar  fixtures  ou  popular manualmente.
  13. 13. Fixtures
  14. 14. Fixtures
  15. 15. Object Factory“Fixtures On The Fly!”O modelo muda, os testes não!Fácil, extensível! Factory GirlNão depende de arquivos externos!
  16. 16. Model MommyObject Factory for Django (1.1 e 1.2)Criado por Vanderson MottaVários contribuidoresEvoluindo rápidamenteSuporte a relações! *
  17. 17. Já Suporta *SlugField CharField TextField URLField EmailField FileField ImageField ForeignKey ManyToManyField OneToOneField DateField DateTimeField BooleanField All Numeric Fields
  18. 18. Como Usar?
  19. 19. Por Baixo dos PanosModelMommy  funciona  com  introspecção  dos campos  do  Modelo.  Para  cada  campo,  há  um “gerador de dados” mapeado.model_mommy/generators.py make_one e make_many são generators!
  20. 20. Exemplo Completo!
  21. 21. GeneratorsFunções simples que devolvem um valor para popular um campo do modelo. required busca valores do campo e devolve para o generator.
  22. 22. Sobrescrevendo Geradores
  23. 23. Dúvidas?https://github.com/vandersonmota/model_mommyhttps://github.com/italomaia/model_mommy/http://docs.djangoproject.com/en/1.2/topics/testing/http://www.deviantart.com/http://tr1ckxi3.deviantart.com/http://ech­ztx.deviantart.com/http://cerberusphoenix.deviantart.com/http://usoppthegreat.deviantart.com/http://era­artwork.deviantart.com/http://shabarov.deviantart.com/

×