Zend Framework Estrutura e TDD

Post on 27-Jun-2015

1.928 views 2 download

Transcript of Zend Framework Estrutura e TDD

www.schoolofnet.com

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??