teste cabra da peste
DESCRIPTION
Slides apresentados na WordCamp Belo Horizonte 2014: http://2014.belohorizonte.wordcamp.org/TRANSCRIPT
[email protected]@gmail
600 blogs
20 milhões de pageviews mensais
"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
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.
Fluxo de desenvolvimento com testes automatizados:1) Editar o código.2) Abrir o terminal.3) Executar os testes.4) Correr pro abraço.
Fonte: http://blog.typemock.com/2011/12/23/happy-holidays-from-typemock
Quem usa?
PHPUnit produz testes* Fáceis de aprender a escrever.* Fáceis de ler e escrever.* Fáceis e rápidos de executar.* Isolados.
Função
Teste
As fábricas de teste do WP permitem criar
* post* attachment* comment* user
* term* category* tag* blog
Core do WPTestes PHP
Core do WPTestes para reproduzir bugs
Testes JavaScript com qunit Core do WP
WP-CLI:
$ $ (cria novo plugin com testes)
$ demo start
Tente fazer isso em casa!
Perguntas e RespostasA 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.
Perguntas e RespostasComo 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.
PHPUnit: http://phpunit.de/ WP Automated Testing: http://make.wordpress.org/core/handbook/automated-testing/#contributing-tests-to-wordpressWP-CLI Plugin Unit Test:https://github.com/wp-cli/wp-cli/wiki/Plugin-Unit-Tests
Referências