Testes unitários com WordPress - InterCon Dev +WordPress 2013

1,319 views

Published on

Palestra sobre Testes Unitários e como utilizar a suíte de testes do WordPress para desenvolver temas e plugins. Apresentada em 29/06 no iMasters InterCon Dev +WordPress 2013

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,319
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
0
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Testes unitários com WordPress - InterCon Dev +WordPress 2013

  1. 1. Ferramentas e Práticas *
  2. 2. iMasters InterCon Dev +WordPress – jun/2013 * Ricardo Moraleida * Desenvolvedor faz-tudo * Entusiasta do WordPress * Voluntário nos Fórums de Suporte * Membro da Comunidade wp-brasil.org *http://profiles.wordpress.org/moraleidame *http://br.forums.wordpress.org/profile/moraleidame
  3. 3. iMasters InterCon Dev +WordPress – jun/2013 *
  4. 4. iMasters InterCon Dev +WordPress – jun/2013 * *Testes de alto nível em relação ao sistema. *Também conhecidos como teste de caixa-preta *Testes usando o navegador para saber se o sistema se comporta como deveria.
  5. 5. iMasters InterCon Dev +WordPress – jun/2013 * * Encontram erros tarde demais * Podem esconder os erros numa cadeia de funções/métodos difícil de encontrar.
  6. 6. iMasters InterCon Dev +WordPress – jun/2013 *
  7. 7. iMasters InterCon Dev +WordPress – jun/2013 * * Testes automatizados * Desenhados para rodar todos de uma vez só * Testando as menores unidades possíveis do sistema * Garantindo que cada micro-unidade se comporta como esperado
  8. 8. iMasters InterCon Dev +WordPress – jun/2013 * *Desenvolvimento Guiado por Testes (TDD) Passos: 1) Escrever um teste rápido, que vai falhar 2) Escrever um método que faça o teste passar 3) Refatorar o método para eliminar a repetição
  9. 9. iMasters InterCon Dev +WordPress – jun/2013 *
  10. 10. iMasters InterCon Dev +WordPress – jun/2013 * *Antes de começar: *PHPUnit (https://github.com/sebastianbergmann/phpunit) * Instalação via PEAR ou PHAR *SVN (https://unit-tests.svn.wordpress.org/trunk) * Cliente SVN: TortoiseSVN (http://www.tortoisesvn.net/) * Instruções (http://make.wordpress.org/core/handbook/automated-testing/)
  11. 11. iMasters InterCon Dev +WordPress – jun/2013 * *Rodando os testes: * Via linha de comando:
  12. 12. iMasters InterCon Dev +WordPress – jun/2013 * *Rodando os testes: * Direto no SublimeText 2 *(https://github.com/stuartherbert/sublime-phpunit)
  13. 13. iMasters InterCon Dev +WordPress – jun/2013 * * Teste com falha:
  14. 14. iMasters InterCon Dev +WordPress – jun/2013 * * Teste com falha: Descrição completa da falha (Retornou false mas esperava um array) Localização exata do teste que falhou Classe::método do teste que falhou
  15. 15. iMasters InterCon Dev +WordPress – jun/2013 * * Teste com sucesso: Descrição completa da falha
  16. 16. iMasters InterCon Dev +WordPress – jun/2013 * * O WP tem uma suíte de testes construídos sobre o framework PHPUnit * São usados para testar o código base do sistema (core) * O pacote pode ser estendido para testar temas e plugins
  17. 17. iMasters InterCon Dev +WordPress – jun/2013 * * Testes específicos do WP * Pasta de testes do sistema * Instalação * Config
  18. 18. iMasters InterCon Dev +WordPress – jun/2013 * *wp-tests-config.php *Crie um BD exclusivo para os testes!
  19. 19. iMasters InterCon Dev +WordPress – jun/2013 * Pasta de testes Pasta do plugin
  20. 20. iMasters InterCon Dev +WordPress – jun/2013 * phpunit.xml
  21. 21. iMasters InterCon Dev +WordPress – jun/2013 * testes/bootstrap.php
  22. 22. iMasters InterCon Dev +WordPress – jun/2013 * * Plugin:
  23. 23. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  24. 24. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  25. 25. iMasters InterCon Dev +WordPress – jun/2013 * * Plugin:
  26. 26. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  27. 27. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  28. 28. iMasters InterCon Dev +WordPress – jun/2013 *
  29. 29. iMasters InterCon Dev +WordPress – jun/2013 *
  30. 30. iMasters InterCon Dev +WordPress – jun/2013 *
  31. 31. iMasters InterCon Dev +WordPress – jun/2013 *
  32. 32. iMasters InterCon Dev +WordPress – jun/2013 * http://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests- for-phpunit.assertions * assertArrayHasKey() * assertClassHasAttribute() * assertClassHasStaticAttribute () * assertContains() * assertContainsOnly() * assertCount() * assertEmpty() * assertEqualXMLStructure() * assertEquals() * assertFalse() * assertFileEquals() * assertFileExists() * assertGreaterThan() * assertGreaterThanOrEqual() * assertInstanceOf() * assertInternalType() * assertLessThan() * assertLessThanOrEqual() * assertNull() * assertObjectHasAttribute() * assertRegExp() * assertStringMatchesFormat() * assertStringMatchesFormatFil e() * assertSame() * assertSelectCount() * assertSelectEquals() * assertSelectRegExp() * assertStringEndsWith() * assertStringEqualsFile() * assertStringStartsWith() * assertTag() * assertThat() * assertTrue() * assertXmlFileEqualsXmlFile() * assertXmlStringEqualsXmlFile () * assertXmlStringEqualsXmlStri ng()
  33. 33. iMasters InterCon Dev +WordPress – jun/2013 *
  34. 34. iMasters InterCon Dev +WordPress – jun/2013 *
  35. 35. iMasters InterCon Dev +WordPress – jun/2013 *
  36. 36. iMasters InterCon Dev +WordPress – jun/2013 *
  37. 37. iMasters InterCon Dev +WordPress – jun/2013 * *Utilização *Cria dois usuários, um contributor e um editor, e marca o atual.
  38. 38. iMasters InterCon Dev +WordPress – jun/2013 * *O que pode ser criado? *$post *$attachment *$comment *$user *$term *$category *$tag *$blog
  39. 39. iMasters InterCon Dev +WordPress – jun/2013 * *create_and_get() *create_many()
  40. 40. iMasters InterCon Dev +WordPress – jun/2013 *
  41. 41. iMasters InterCon Dev +WordPress – jun/2013 *
  42. 42. iMasters InterCon Dev +WordPress – jun/2013 *
  43. 43. iMasters InterCon Dev +WordPress – jun/2013 *
  44. 44. iMasters InterCon Dev +WordPress – jun/2013 *
  45. 45. iMasters InterCon Dev +WordPress – jun/2013 *
  46. 46. iMasters InterCon Dev +WordPress – jun/2013 *
  47. 47. iMasters InterCon Dev +WordPress – jun/2013 * Formatos de retorno
  48. 48. iMasters InterCon Dev +WordPress – jun/2013 * Modificação via filtro
  49. 49. iMasters InterCon Dev +WordPress – jun/2013 *
  50. 50. iMasters InterCon Dev +WordPress – jun/2013 *
  51. 51. iMasters InterCon Dev +WordPress – jun/2013 * * Vale a pena criar unit tests para temas? * Nem sempre.
  52. 52. iMasters InterCon Dev +WordPress – jun/2013 * * Vale a pena criar unit tests para temas? * Nem sempre. *Aliás, quase nunca.
  53. 53. iMasters InterCon Dev +WordPress – jun/2013 * * Vale a pena criar unit tests para temas? * Nem sempre. *Aliás, quase nunca. Tema vs. Plugins * se a funcionalidade é muito especifica e não tem a ver com o layout, faça um plugin.
  54. 54. iMasters InterCon Dev +WordPress – jun/2013 * * Faça testes de aceitação: * Theme Unit Test (http://codex.wordpress.org/Theme_Unit_Test) * WP Test io (http://wptest.io/) * Importe o arquivo .xml * Ferramentas -> Importar -> WordPress * Crie novos usuários * Faça download dos anexos
  55. 55. iMasters InterCon Dev +WordPress – jun/2013 * *24 posts: *publicados, agendado, rascunho, lixeira e sticky *12 páginas *52 categorias *49 tags *29 comentários *14 imagens
  56. 56. iMasters InterCon Dev +WordPress – jun/2013 * * OOP versus Procedimental *Se a complexidade requer OOP, faça um plugin * É possível testar funcionalidades individuais.
  57. 57. iMasters InterCon Dev +WordPress – jun/2013 * * OOP versus Procedimental *Se a complexidade requer OOP, faça um plugin * É possível testar funcionalidades individuais. *Não necessariamente a função em si, mas o resultado desejado
  58. 58. iMasters InterCon Dev +WordPress – jun/2013 * ricardo@moraleida.me

×