• Save
Testes unitários com WordPress - InterCon Dev +WordPress 2013
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 1,548 views
Uploaded 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

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

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,548
On Slideshare
1,448
From Embeds
100
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
10

Embeds 100

https://twitter.com 100

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Ferramentas e Práticas *
  • 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. iMasters InterCon Dev +WordPress – jun/2013 *
  • 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. 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. iMasters InterCon Dev +WordPress – jun/2013 *
  • 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. 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. iMasters InterCon Dev +WordPress – jun/2013 *
  • 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. iMasters InterCon Dev +WordPress – jun/2013 * *Rodando os testes: * Via linha de comando:
  • 12. iMasters InterCon Dev +WordPress – jun/2013 * *Rodando os testes: * Direto no SublimeText 2 *(https://github.com/stuartherbert/sublime-phpunit)
  • 13. iMasters InterCon Dev +WordPress – jun/2013 * * Teste com falha:
  • 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. iMasters InterCon Dev +WordPress – jun/2013 * * Teste com sucesso: Descrição completa da falha
  • 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. iMasters InterCon Dev +WordPress – jun/2013 * * Testes específicos do WP * Pasta de testes do sistema * Instalação * Config
  • 18. iMasters InterCon Dev +WordPress – jun/2013 * *wp-tests-config.php *Crie um BD exclusivo para os testes!
  • 19. iMasters InterCon Dev +WordPress – jun/2013 * Pasta de testes Pasta do plugin
  • 20. iMasters InterCon Dev +WordPress – jun/2013 * phpunit.xml
  • 21. iMasters InterCon Dev +WordPress – jun/2013 * testes/bootstrap.php
  • 22. iMasters InterCon Dev +WordPress – jun/2013 * * Plugin:
  • 23. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  • 24. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  • 25. iMasters InterCon Dev +WordPress – jun/2013 * * Plugin:
  • 26. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  • 27. iMasters InterCon Dev +WordPress – jun/2013 * * 1º teste:
  • 28. iMasters InterCon Dev +WordPress – jun/2013 *
  • 29. iMasters InterCon Dev +WordPress – jun/2013 *
  • 30. iMasters InterCon Dev +WordPress – jun/2013 *
  • 31. iMasters InterCon Dev +WordPress – jun/2013 *
  • 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. iMasters InterCon Dev +WordPress – jun/2013 *
  • 34. iMasters InterCon Dev +WordPress – jun/2013 *
  • 35. iMasters InterCon Dev +WordPress – jun/2013 *
  • 36. iMasters InterCon Dev +WordPress – jun/2013 *
  • 37. iMasters InterCon Dev +WordPress – jun/2013 * *Utilização *Cria dois usuários, um contributor e um editor, e marca o atual.
  • 38. iMasters InterCon Dev +WordPress – jun/2013 * *O que pode ser criado? *$post *$attachment *$comment *$user *$term *$category *$tag *$blog
  • 39. iMasters InterCon Dev +WordPress – jun/2013 * *create_and_get() *create_many()
  • 40. iMasters InterCon Dev +WordPress – jun/2013 *
  • 41. iMasters InterCon Dev +WordPress – jun/2013 *
  • 42. iMasters InterCon Dev +WordPress – jun/2013 *
  • 43. iMasters InterCon Dev +WordPress – jun/2013 *
  • 44. iMasters InterCon Dev +WordPress – jun/2013 *
  • 45. iMasters InterCon Dev +WordPress – jun/2013 *
  • 46. iMasters InterCon Dev +WordPress – jun/2013 *
  • 47. iMasters InterCon Dev +WordPress – jun/2013 * Formatos de retorno
  • 48. iMasters InterCon Dev +WordPress – jun/2013 * Modificação via filtro
  • 49. iMasters InterCon Dev +WordPress – jun/2013 *
  • 50. iMasters InterCon Dev +WordPress – jun/2013 *
  • 51. iMasters InterCon Dev +WordPress – jun/2013 * * Vale a pena criar unit tests para temas? * Nem sempre.
  • 52. iMasters InterCon Dev +WordPress – jun/2013 * * Vale a pena criar unit tests para temas? * Nem sempre. *Aliás, quase nunca.
  • 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. 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. 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. iMasters InterCon Dev +WordPress – jun/2013 * * OOP versus Procedimental *Se a complexidade requer OOP, faça um plugin * É possível testar funcionalidades individuais.
  • 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. iMasters InterCon Dev +WordPress – jun/2013 * ricardo@moraleida.me