Este documento resume uma apresentação sobre testes de unidade no PHP. Ele explica o que é um TestFest, como escrever testes de unidade no PHP usando arquivos .phpt e como rodar os testes. Também fornece exemplos de nomes, estruturas e casos especiais de testes para ilustrar diferentes funcionalidades e cenários.
1. Brasília TestFest Slides baseados no trabalho de Sebastian Bergmann, traduzido por José Ricardo (PHPMS) e adaptado por Silvano Girardi (PHPSC) e Rafael Dohms (PHPSP) Original: http://sebastian-bergmann.de/talks/
25. Dando nome aos bois Testes que ilustram falhas reportadas (bugs) bug<bugid>.phpt Testes de comportamento básico de uma função <functionname>_basic.phpt Testes de comportamento errôneo de uma função <functionname>_error.phpt Testes de variações no comportamento de uma função <functionname>_variation.phpt Testes variados para extensões <extname><no>.phpt
26. Keep It Simple ; ) --TEST-- Hello World --FILE-- Hello World --EXPECT-- Hello World
27. Ok, simples demais --TEST-- Hello World --FILE-- <?php print 'Hello World' ; ?> --EXPECT-- Hello World
28. Espere pra ver, com 'F' --TEST-- Hello World --FILE-- <?php print 'Hello World --EXPECTF-- Parse error: syntax error, unexpected $end in %s.php on line %d %s - qualquer string %d - numero %c - um character %w - espaço %i - inteiro %f - real %x - hexadecimal %e – separador de diretórios
29. Agora esperando com ER's --TEST-- Hello World --FILE-- <?php print 'Hello World --EXPECTREGEX-- Parse error: (parse|syntax) error, unexpected $end in .* on line .*
32. Condições --TEST-- Verificando se estamos em uma plataforma de 32 bits... --SKIPIF-- <?php if ( PHP_INT_SIZE != 4 ) die ( '32bit platforms only' ); ?> --FILE-- --EXPECT--
33. Teste de Paternidade --TEST-- Um teste com uma seção de créditos --CREDITS-- James Bond <james@bond.com> #testfest Brasília on 2010-08-28 --FILE-- --EXPECT--
34. ===================================================================== PHP : ./sapi/cli/php PHP_SAPI : cli PHP_VERSION : 5.2.15-dev ZEND_VERSION: 2.2.0 PHP_OS : Linux - Linux goias 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 INI actual : /home/paulolima/phptestfest/php52 More .INIs : CWD : /home/paulolima/phptestfest/php52 Extra dirs : VALGRIND : Not used ===================================================================== Running selected tests. PASS strtr() function - basic test for strstr() [meusTestes/olamundo.phpt] ===================================================================== Number of tests : 1 1 Tests skipped : 0 ( 0.0%) -------- Tests warned : 0 ( 0.0%) ( 0.0%) Tests failed : 0 ( 0.0%) ( 0.0%) Expected fail : 0 ( 0.0%) ( 0.0%) Tests passed : 1 (100.0%) (100.0%) --------------------------------------------------------------------- Time taken : 0 seconds ===================================================================== Senta Pua! $ export TEST_PHP_EXECUTABLE=./sapi/cli/php $ ./sapi/cli/php run-tests.php <diretorio|*>
41. Licença Este material para apresentação é publicado sob a licença “Attribution-Share Alike 3.0 Unported”. Você é livre para: Compartilhar – copiar, distribuir e transmitir o trabalho. Alterar – adaptar o trabalho. Sob as seguintes condições: Atribuição . Você deve atribuir o trabalho na maneira especificada pelo autor ou licenciador (mas não de maneira a sugerir que eles te apóiam você ou a maneira como você utiliza o trabalho). Distribua da mesma forma . Se você alterar, transformar ou construir algo baseando-se neste trabalho, você deve distribuir o trabalho resultante apenas sob a mesma licença, uma licença similar ou compatível. Para qualquer reuso ou distribuição, você deve deixar claro aos outros os termos de licenciamento deste trabalho. Qualquer uma das condições acima pode ser ignorada se você obtiver a permissões do proprietário dos direitos autorais. Nada nesta licença danifica ou restringe os direitos morais do autor.