Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Teste, cabra da peste!

Teste, cabra da peste!

Slides apresentados na WordCamp Belo Horizonte 2014: http://2014.belohorizonte.wordcamp.org/

Baixe o pdf da apresentação para acessar os links.

mchelem

May 17, 2014
Tweet

More Decks by mchelem

Other Decks in Programming

Transcript

  1. "Mesmo bons programadores cometem erros. A diferença entre um bom

    e um mau programador é que o bom programador usa testes para detectar seus erros o mais cedo possível." phpunit
  2. Fluxo de desenvolvimento sem testes automatizados: 1) Editar o código.

    2) Abrir o navegador e entrar manualmente dados (posts, comentários), ativar o plugin, alterar configurações. 4) Verificar se existem erros em 200 lugares diferentes. 5) Repetir os passos acima um milhão de vezes, para ter certeza. 6) Passar o resto da semana dando suporte.
  3. Fluxo de desenvolvimento com testes automatizados: 1) Editar o código.

    2) Abrir o terminal. 3) Executar os testes. 4) Correr pro abraço.
  4. PHPUnit produz testes * Fáceis de aprender a escrever. *

    Fáceis de ler e escrever. * Fáceis e rápidos de executar. * Isolados.
  5. As fábricas de teste do WP permitem criar * post

    * attachment * comment * user * term * category * tag * blog
  6. Perguntas e Respostas A factory do WordPress cria os posts

    em banco? Sim, ela usa as funções do WordPress por debaixo dos panos (wp_insert_user, wp_update_post...). É possível usar mocks em vez de acessar o banco? Sim, o phpunit tem suporte a mocks. Tem alguns exemplos de projetos com unit test? Os plugins jetpack, liveblog, wordpress-seo.
  7. Perguntas e Respostas Como garantir que os testes foram desenvolvidos

    corretamente? Não há como garantir. É um exercício de criatividade pensar no que poderia dar errado. Porém, o relatório de cobertura de testes ajuda a entender o que foi testado. O travis-ci tem relatório de cobertura de testes? Não, mas ele se integra bem com ferramentas como code climate e coveralls. Algumas ferramentas como scrutinize têm relatório de cobertura embutido. No jenkins é possível instalar plugins.