• Like
  • Save
Testando Aplicações Django: Quando, Como e Onde?
Upcoming SlideShare
Loading in...5
×
 

Testando Aplicações Django: Quando, Como e Onde?

on

  • 4,137 views

Testar

Testar

Statistics

Views

Total Views
4,137
Views on SlideShare
1,834
Embed Views
2,303

Actions

Likes
4
Downloads
41
Comments
0

16 Embeds 2,303

http://ericstk.wordpress.com 1682
http://www.fernandovalente.com.br 388
http://fernandovalente.com.br 107
http://substanciando.blogspot.com.br 86
http://substanciando.blogspot.com 14
https://twitter.com 8
http://us-w1.rockmelt.com 3
http://feeds.feedburner.com 3
http://digg.com 2
http://a0.twimg.com 2
http://substanciando.blogspot.mx 2
https://ericstk.wordpress.com 2
http://substanciando.blogspot.jp 1
http://substanciando.blogspot.be 1
http://feedly.com 1
http://substanciando.blogspot.co.uk 1
More...

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

    Testando Aplicações Django: Quando, Como e Onde? Testando Aplicações Django: Quando, Como e Onde? Presentation Transcript

    • Testando Aplicações Django Como? Quando? Onde? Bernardo Fontes @bbfontes
    • @bbfontes – bernardofontes.net – falecomigo@bernardofontes.net
    • Por que testar?
    • Testes não são garantias
    • Testes não são garantias, mas são excelentes indicadores
    • Por que falarsobre testes?
    • Só escrever testes não basta
    • Teste também é código!
    • Im watching !
    • Código deve ser fácil de ler.
    • Código deve ser fácil de ler.Testes também!
    • Código deve serfácil de entender.
    • Código deve serfácil de entender. Testes também!
    • Código deve serfácil de manter.
    • Código deve serfácil de manter.Testes também!
    • #NOT
    • E dá para escrever bons testes no Django?
    • E dá para escrever bons testes no Django?
    • Recursos do Django● Views● Templates● Forms● Models● Signals● Template tags● Template filters● Settings● ...
    • Como começar a testar?
    • python manage.py startapp core
    • TUDO NUM ARQUIVO .PY SÓ!?!?! #WTF!!!
    • Organize seus testes
    • Test as Packages
    • Test as Packages
    • Test as Packages __init__.py:
    • Explícito é melhor que implícito eevita ambiguidades
    • Testando o tripé do Django● Views● Forms● Models
    • Views – O que testar?● Em 99% dos casos: ● Status code da resposta ● Template utilizado ● Contexto da resposta ● Persistência no banco de dados● Em alguns outros casos: ● Envio de e-mails ● Conteúdo da resposta ● Disparo de sinais ● Conexões com APIs externas
    • Views – Como testar?Django TestClient: ● get(path, data={}, follow=False, **extra) ● post(path, data={}, content_type=MULTIPART_CONTENT, follow=False, **extra) ● put(path, data={}, content_type=MULTIPART_CONTENT, follow=False, **extra) ● delete(path, follow=False, **extra) ● ... ● login(**credentials) ● logout()
    • Testando uma view básica
    • Mais complexidade com email
    • Mais complexidade comconteúdo da resposta
    • Testando uma view do admin
    • Forms – O que testar?● Validação do formulário ● Geral ● Por campo● Comportamento dos campos ● Ex: atributo choice do ModelChoiceField● Comportamento do domínio do form ● Ex: método save sobreescrito
    • Forms – Como testar?● Instanciar um objeto da classe do form com um dicionário de strings com os dados sendo passado por parâmetro
    • Forms – Code Snippet
    • Models – O que testar?● Validação do modelo● Métodos adicionados ao modelo● Estados da queryset● Cuidado para não testar o Django
    • Models – Como testar?● Instanciação de objetos daquele modelo normalmente e asserções através da API daquele objeto;
    • Models - Snippet
    • Sagacidades com testes! Estude TODO o pacote django.testhttps://docs.djangoproject.com/en/dev/intro/tutorial05/https://docs.djangoproject.com/en/dev/topics/testing/advanced/
    • Sagacidades com testes!Use os asserts que o Django já te fornece.
    • Sagacidades com testes! Extenda o TestCase do Djangoadicionando novos métodos de testes. Mas cuidado para não fazer #tudojuntoemisturado!
    • Sagacidades com testes!
    • Sagacidades com testes! Utilize o mock para simular comportamentos externos.http://www.voidspace.org.uk/python/mock/
    • Sagacidades com testes!
    • Sagacidades com testes! Pré-popule seu banco utilizando o model_mommy.http://github.com/vandersonmota/model_mommy/
    • Sagacidades para escrever testes!
    • Sagacidades com testes! Substitua o TestRunner do Django pelo Nose.http://code.google.com/p/python/python-nose/
    • Ainda faltou testarmos● Signals● Template filters● Template tags● Settings● Management commands● ModelAdmin● Forms widgets● ...
    • Obrigado!
    • Perguntas?