SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Zend Framework e TDD




      Zend Framework - Desenvolvimento guiado por testes
                       #phpdaycuritiba



Wesley Willians
@wesleywillians

                                                   www.schoolofnet.com
Agenda


  •   Um pouco sobre TDD

  •   Estrutura do Zend Framework

  •   Integração do ZF com o PHPUnit

  •   Testando Models, Controllers e Helpers

  •   Banco de dados em memória




                                               www.schoolofnet.com
Sobre testes

  • Teste de software
   • Executar algum programa a ser testado com algum input e visualmente
       verificar os resultados.

  • Testes automatizados
   • Script executável que o programa a ser testado verifica automaticamente
       os resultados obtidos.

    • Testar != Depurar
     • Testar = Verificar existência de erros
     • Depurar = Seguir um fluxo dentro do programa para encontrar um
         erro conhecido.
                                                              www.schoolofnet.com
O que eu ganho com isso?


  • Segurança!
   • Acabou o medo de adicionar novas funcionalidades
   • Correção de bugs
   • Refatoração




                                                        www.schoolofnet.com
E o sobre o TDD?

  •   TDD = Desenvolvimento guiado por testes

      •   Criar o teste

      •   O teste deverá falhar

      •   Criar o programa para fazer o teste passar da forma mais rápida possível

      •   Refatorar!




                                                                    www.schoolofnet.com
Estrutura do Zend Framework

                   • Conjunto de classes/bibliotecas
                   • Possibilidade de trabalhar de forma desacoplada
                   • Estrutura das aplicações normalmente são MVC
                   • Aplicação não fica disponível para web
                   • DbTable vs Models
                   • Bootstrap de inicialização
                   • Geração estrutural de código com Zend Tool




                                                            www.schoolofnet.com
Estrutura do Zend Framework

• Camada de visualização
  • Smarty

• Zend_Db
  • Doctrine 1/2




                              www.schoolofnet.com
Estrutura do Zend Framework
• Cache
  • Meta dados
  • Estático
  • Pontual
  • Adapters
    • File
    •APC
    • XCache
    • Memcached




                              www.schoolofnet.com
Integração do ZF e PHPUnit




                             www.schoolofnet.com
Integração do ZF e PHPUnit




                             www.schoolofnet.com
Integração do ZF e PHPUnit




                             www.schoolofnet.com
Integração do ZF e PHPUnit




                             www.schoolofnet.com
Testando Models, Controllers e Helpers

Verificação da existência de módulos, controllers e actions




                                                         www.schoolofnet.com
Testando Models, Controllers e Helpers

Simulando post e testando output




                                         www.schoolofnet.com
Banco de dados em memória
A quantidade de testes e as interações com banco podem deixar a
execução dos testes extremamente lenta.




Trabalhar com o pdo_sqlite em memória pode agilizar a execução
dos testes em até 2/3.



                                                      www.schoolofnet.com
Obrigado!



            Alguma dúvida??




                              www.schoolofnet.com

Mais conteúdo relacionado

Mais procurados

Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkMayara Fernandes
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais característicasalinebiath
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Renato Groff
 
Testes de integração em microservices
Testes de integração em microservicesTestes de integração em microservices
Testes de integração em microservicesClaudenir Freitas
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmineRangel Javier
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonPaula Grangeiro
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Luís Cobucci
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDDKleber Bernardo
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeRafaela Prado
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvemJúlio de Lima
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
Automatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkAutomatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkClaudenir Freitas
 
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
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoPaula Grangeiro
 

Mais procurados (20)

Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot framework
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais características
 
TDD na Prática
TDD na PráticaTDD na Prática
TDD na Prática
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SC
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Testes de integração em microservices
Testes de integração em microservicesTestes de integração em microservices
Testes de integração em microservices
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmine
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em python
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011Qualidade em projetos PHP - PHPSC Conf 2011
Qualidade em projetos PHP - PHPSC Conf 2011
 
Test-Driven Develpment - TDD
Test-Driven Develpment - TDDTest-Driven Develpment - TDD
Test-Driven Develpment - TDD
 
TDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao testeTDD Desenvolvimento orientado ao teste
TDD Desenvolvimento orientado ao teste
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Automatizando seus testes com Robot Framework
Automatizando seus testes com Robot FrameworkAutomatizando seus testes com Robot Framework
Automatizando seus testes com Robot Framework
 
Testes Automatizados No Cakephp
Testes Automatizados No CakephpTestes Automatizados No Cakephp
Testes Automatizados No Cakephp
 
Be React. Do Tests!
Be React. Do Tests!Be React. Do Tests!
Be React. Do Tests!
 
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
 
Testes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de códigoTestes unitários como ferramentas de design de código
Testes unitários como ferramentas de design de código
 

Semelhante a Zend Framework Estrutura e TDD

Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da ZendDomingos Teruel
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Flávio Lisboa
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksJonata Weber
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkJosemar Davi Luedke
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfJ0071
 
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Douglas Fischer
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com MavenEdgar Dantas
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: IntroduçãoJugVale
 

Semelhante a Zend Framework Estrutura e TDD (20)

Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Desmistificando o Framework da Zend
Desmistificando o Framework da ZendDesmistificando o Framework da Zend
Desmistificando o Framework da Zend
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Curso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – FrameworksCurso PHP UNIFACS 2014.1 – Frameworks
Curso PHP UNIFACS 2014.1 – Frameworks
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o Zeanwork
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
 
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
Cocoaheads RJ - Como você faz? (Douglas Fischer - 26/03/2015)
 
Maven 2
Maven 2Maven 2
Maven 2
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Frameworks PHP @edgarsandi
Frameworks PHP @edgarsandiFrameworks PHP @edgarsandi
Frameworks PHP @edgarsandi
 
Projetos Java com Maven
Projetos Java com MavenProjetos Java com Maven
Projetos Java com Maven
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 

Zend Framework Estrutura e TDD

  • 1. Zend Framework e TDD Zend Framework - Desenvolvimento guiado por testes #phpdaycuritiba Wesley Willians @wesleywillians www.schoolofnet.com
  • 2. Agenda • Um pouco sobre TDD • Estrutura do Zend Framework • Integração do ZF com o PHPUnit • Testando Models, Controllers e Helpers • Banco de dados em memória www.schoolofnet.com
  • 3. Sobre testes • Teste de software • Executar algum programa a ser testado com algum input e visualmente verificar os resultados. • Testes automatizados • Script executável que o programa a ser testado verifica automaticamente os resultados obtidos. • Testar != Depurar • Testar = Verificar existência de erros • Depurar = Seguir um fluxo dentro do programa para encontrar um erro conhecido. www.schoolofnet.com
  • 4. O que eu ganho com isso? • Segurança! • Acabou o medo de adicionar novas funcionalidades • Correção de bugs • Refatoração www.schoolofnet.com
  • 5. E o sobre o TDD? • TDD = Desenvolvimento guiado por testes • Criar o teste • O teste deverá falhar • Criar o programa para fazer o teste passar da forma mais rápida possível • Refatorar! www.schoolofnet.com
  • 6. Estrutura do Zend Framework • Conjunto de classes/bibliotecas • Possibilidade de trabalhar de forma desacoplada • Estrutura das aplicações normalmente são MVC • Aplicação não fica disponível para web • DbTable vs Models • Bootstrap de inicialização • Geração estrutural de código com Zend Tool www.schoolofnet.com
  • 7. Estrutura do Zend Framework • Camada de visualização • Smarty • Zend_Db • Doctrine 1/2 www.schoolofnet.com
  • 8. Estrutura do Zend Framework • Cache • Meta dados • Estático • Pontual • Adapters • File •APC • XCache • Memcached www.schoolofnet.com
  • 9. Integração do ZF e PHPUnit www.schoolofnet.com
  • 10. Integração do ZF e PHPUnit www.schoolofnet.com
  • 11. Integração do ZF e PHPUnit www.schoolofnet.com
  • 12. Integração do ZF e PHPUnit www.schoolofnet.com
  • 13. Testando Models, Controllers e Helpers Verificação da existência de módulos, controllers e actions www.schoolofnet.com
  • 14. Testando Models, Controllers e Helpers Simulando post e testando output www.schoolofnet.com
  • 15. Banco de dados em memória A quantidade de testes e as interações com banco podem deixar a execução dos testes extremamente lenta. Trabalhar com o pdo_sqlite em memória pode agilizar a execução dos testes em até 2/3. www.schoolofnet.com
  • 16. Obrigado! Alguma dúvida?? www.schoolofnet.com