zend framework estrutura e tdd
TRANSCRIPT
![Page 1: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/1.jpg)
www.schoolofnet.com
Zend Framework e TDD
Zend Framework - Desenvolvimento guiado por testes#phpdaycuritiba
Wesley Willians@wesleywillians
![Page 2: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/2.jpg)
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
![Page 3: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/3.jpg)
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.
![Page 4: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/4.jpg)
www.schoolofnet.com
O que eu ganho com isso?
• Segurança!
• Acabou o medo de adicionar novas funcionalidades
• Correção de bugs
• Refatoração
![Page 5: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/5.jpg)
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!
![Page 6: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/6.jpg)
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
![Page 7: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/7.jpg)
www.schoolofnet.com
Estrutura do Zend Framework
• Camada de visualização• Smarty
• Zend_Db
• Doctrine 1/2
![Page 8: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/8.jpg)
www.schoolofnet.com
Estrutura do Zend Framework
• Cache• Meta dados• Estático • Pontual
• Adapters• File •APC• XCache• Memcached
![Page 9: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/9.jpg)
www.schoolofnet.com
Integração do ZF e PHPUnit
![Page 10: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/10.jpg)
www.schoolofnet.com
Integração do ZF e PHPUnit
![Page 11: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/11.jpg)
www.schoolofnet.com
Integração do ZF e PHPUnit
![Page 12: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/12.jpg)
www.schoolofnet.com
Integração do ZF e PHPUnit
![Page 13: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/13.jpg)
www.schoolofnet.com
Testando Models, Controllers e Helpers
Verificação da existência de módulos, controllers e actions
![Page 14: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/14.jpg)
www.schoolofnet.com
Testando Models, Controllers e Helpers
Simulando post e testando output
![Page 15: Zend Framework Estrutura e TDD](https://reader037.vdocuments.net/reader037/viewer/2022100602/558de6731a28ab07438b47be/html5/thumbnails/15.jpg)
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.