SlideShare une entreprise Scribd logo
1  sur  40
Teste é para os fracos
   Como fazer teste em aplicações?
Thiago Avelino - @avelino0 - avelino.us - thiagoavelinoster@gmail.com
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Teste é para os fracos
Realmente eu sou fraco e sou capaz de fazer isso




      Por que testar?
Realmente escrever teste não é legal
Como escrever teste naturalmente?
Como escrever teste naturalmente?
Como escrever teste naturalmente?
Como escrever teste naturalmente?
Teste também é código
Teste também é código
              Código deve ser fácil de ler
Teste também é código
              Código deve ser fácil de ler
              Código deve ser fácil de entender
Teste também é código
              Código deve ser fácil de ler
              Código deve ser fácil de entender
              Código deve ser fácil de manter
Explícito é melhor
  que implícito e
evita ambiguidades
Testando aplicação Django

• Views
• Forms
• Models
Views

•   Status code


•   Template utilizado


•   Contexto de resposta


•   Envio de email


•   Disparo de sinais


•   Conexão com API
Views - TestClient
                from django.test.client import Client


•   get


•   post


•   put


•   delete


•   ...


•   login()


•   logout()
Simples teste em uma View
Forms


•   Validação do formulário


    •   Geral


    •   Por campo


•   Comportamento de campo


    •   Exemplo choice
Simples teste em um Form
Models



•   Validação do modelo


•   Métodos adicionados ao modelo


•   Estados de queryset
Simples teste em um Model
Asserts
•   assertEqual / assertNotEqual


•   assertTrue / assertFalse


•   assertIn


•   assertFormError


•   assertTemplateUsed / assertTemplateNotUsed


•   assertRedirects


•   assertQuerysetEqual


•   assertNumQueries
TestCase Utilitários


•   setup_test_environment()


•   teardown_test_environment()


•   create_test_db([verbosity=1, autoclobber=False])


•   destroy_test_db(old_database_name[, verbosity=1])
doctest



•   Testes via docstring


•   Testes de regressão
doctest
doctest
$ python example.py -v
Trying:
    factorial(5)
Expecting:
    120
ok
Trying:
    [factorial(n) for n in range(6)]
Expecting:
    [1, 1, 2, 6, 24, 120]
ok
Trying:
    [factorial(long(n)) for n in range(6)]
Expecting:
    [1, 1, 2, 6, 24, 120]
ok
Podemos testar também
•   Signals


•   Template filters


•   Template tags


•   Settings


•   Management commands


•   ModelAdmin


•   Form widgets


•   ...
Obrigado!
Perguntas?

Contenu connexe

Similaire à Como testar aplicações Django

Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
GOTEST-Aula2.2-Projeto.pdf
GOTEST-Aula2.2-Projeto.pdfGOTEST-Aula2.2-Projeto.pdf
GOTEST-Aula2.2-Projeto.pdfRodolphoCesar2
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaLivia Gabos
 
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Iure Guimaraes
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Alex Tercete
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDDDextra
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de softwareHeider Lopes
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesEverton Rodrigues
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...Rodrigo Oliveira, Msc, PMP
 
Test Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOpsTest Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOpsRodolfo dos Santos Pinto
 

Similaire à Como testar aplicações Django (20)

Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
GOTEST-Aula2.2-Projeto.pdf
GOTEST-Aula2.2-Projeto.pdfGOTEST-Aula2.2-Projeto.pdf
GOTEST-Aula2.2-Projeto.pdf
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
Palestra Ufpb
Palestra UfpbPalestra Ufpb
Palestra Ufpb
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostaria
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
Testes unitários e Mocks
Testes unitários e MocksTestes unitários e Mocks
Testes unitários e Mocks
 
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )
 
Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?Por que você não escreve Testes Unitários?
Por que você não escreve Testes Unitários?
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
Introdução ao design de teste de software
Introdução ao design de teste de softwareIntrodução ao design de teste de software
Introdução ao design de teste de software
 
Teste com Qualidade
Teste com QualidadeTeste com Qualidade
Teste com Qualidade
 
1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software1 2 3 - Testando - Automatizando os testes de software
1 2 3 - Testando - Automatizando os testes de software
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Testes
TestesTestes
Testes
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por Testes
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...A importância dos testes unitários: do código legado ao pipeline de testes em...
A importância dos testes unitários: do código legado ao pipeline de testes em...
 
Test Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOpsTest Strategies, Testes unitários, Testes de integração e DevOps
Test Strategies, Testes unitários, Testes de integração e DevOps
 

Plus de Thiago Avelino

Bottle, o full stack sem Django
Bottle, o full stack sem DjangoBottle, o full stack sem Django
Bottle, o full stack sem DjangoThiago Avelino
 
MongoDB native to web development - London Framework
MongoDB native to web development - London FrameworkMongoDB native to web development - London Framework
MongoDB native to web development - London FrameworkThiago Avelino
 
O que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero leroO que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero leroThiago Avelino
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBThiago Avelino
 
NoSQL for Search - Riak
NoSQL for Search - RiakNoSQL for Search - Riak
NoSQL for Search - RiakThiago Avelino
 
NoSQL, o que realmente é?
NoSQL, o que realmente é?NoSQL, o que realmente é?
NoSQL, o que realmente é?Thiago Avelino
 
MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source Thiago Avelino
 
Node.js em produção, javascript no server side
Node.js em produção, javascript no server sideNode.js em produção, javascript no server side
Node.js em produção, javascript no server sideThiago Avelino
 
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodbThiago Avelino
 
MongoDB, Banco de Dados orientado a documento
MongoDB, Banco de Dados orientado a documentoMongoDB, Banco de Dados orientado a documento
MongoDB, Banco de Dados orientado a documentoThiago Avelino
 

Plus de Thiago Avelino (14)

Bottle, o full stack sem Django
Bottle, o full stack sem DjangoBottle, o full stack sem Django
Bottle, o full stack sem Django
 
MongoDB native to web development - London Framework
MongoDB native to web development - London FrameworkMongoDB native to web development - London Framework
MongoDB native to web development - London Framework
 
O que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero leroO que é CMS? Foco no conteúdo e não no lero lero
O que é CMS? Foco no conteúdo e não no lero lero
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDB
 
NoSQL for Search - Riak
NoSQL for Search - RiakNoSQL for Search - Riak
NoSQL for Search - Riak
 
NoSQL, o que realmente é?
NoSQL, o que realmente é?NoSQL, o que realmente é?
NoSQL, o que realmente é?
 
MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source MongoGrid Hosting de MongoDB Open Source
MongoGrid Hosting de MongoDB Open Source
 
Node.js em produção, javascript no server side
Node.js em produção, javascript no server sideNode.js em produção, javascript no server side
Node.js em produção, javascript no server side
 
Beaga.JS
Beaga.JSBeaga.JS
Beaga.JS
 
sampa.js end
sampa.js endsampa.js end
sampa.js end
 
sampa.js start
sampa.js startsampa.js start
sampa.js start
 
Desenvolvendo com mongodb
Desenvolvendo com mongodbDesenvolvendo com mongodb
Desenvolvendo com mongodb
 
Oficina de Django
Oficina de DjangoOficina de Django
Oficina de Django
 
MongoDB, Banco de Dados orientado a documento
MongoDB, Banco de Dados orientado a documentoMongoDB, Banco de Dados orientado a documento
MongoDB, Banco de Dados orientado a documento
 

Como testar aplicações Django

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n