Teste de unidade para desenvolvimento de plugins

17

Preciso aplicar o teste de unidade para um dos meus plugins. Eu o projetei recentemente em classes, para que o teste de unidade seja mais fácil de aplicar agora.

Quais são algumas estratégias eficazes para testar o meu plugin de unidade? Eu preciso de uma maneira de usar as funções do WordPress usadas no plug-in, mas não preciso de um site WordPress em execução (apenas dados de teste no DB AFAIK), certo?

Eu tenho dificuldade em descobrir como testar unicamente o plug-in e não o plug-in no contexto do site. Eu poderia usar o Selenium para isso, mas agora eu só quero focar no teste de unidade da funcionalidade das classes de plugins, para não quebrá-las a cada atualização.

Fernando Briano
fonte

Respostas:

14

Como um ex-engenheiro de software que constrói grandes tipos de negócios que desembarcaram em uma agência interativa, deixe-me pensar um pouco sobre os testes ao desenvolver para o Wordpress:

  1. Seu teste de unidade deve testar a menor quantidade de comportamento que uma classe pode executar. Cada classe deve poder ser testada independentemente do Wordpress. Se você tem uma dependência do Wordpress, considere criar objetos e / ou métodos simulados em seu teste para solucionar isso. Por fim, isso mudará a forma como você escreve seu código um pouco - mas será muito mais testável. Como de costume, não há almoço grátis.

  2. Quando você chega ao nível de teste funcional, é aqui que você pode testar seu código com dependências do Wordpress. É aqui que você realmente testará se seu plug-in realmente executa um serviço que deveria.

  3. Dependendo do que o seu plug-in faz - considere usar testes baseados no Selenium que testam a presença de dados no DOM usando IDs. É razoavelmente robusto e é muito menos provável que mude de versão para versão. Novamente, o truque aqui é pensar nos testes como parte do seu ciclo de vida de desenvolvimento de software. Grandes alterações no código serão transmitidas em cascata para grandes alterações em seus testes. Tudo faz parte do custo de fazer negócios.

Se você precisar de ajuda com qualquer uma das ferramentas para fazer isso - ficarei feliz em responder se você abrir uma nova pergunta. Eu uso o PHPUnit e sua extensão de selênio no trabalho que faço.

Ethan Seifert
fonte
11
Hey Ethan, obrigado por uma resposta tão profissional. Não poderia esperar menos desta comunidade :) Vou tentar escrever testes de unidade para minhas classes e criar alguns objetos simulados para contornar as funções do WordPress. A Etapa 2 é a parte mais difícil para mim, pois precisarei ter uma instalação do WordPress para algum tipo de teste automático, onde eu poderia começar a usar o Selenium mais tarde. Vou começar com o PHPUnit e ver como isso acontece. Obrigado!
Fernando Briano 16/02
Resposta perfeita!
rsman
-1

Recentemente, criei um tutorial que leva as informações do meu Google para mostrar como:

  1. Use o núcleo wordpress faça testes de unidade
  2. Ocultar avisos reprovados / enviados por php
  3. Mostre como definir suas opções de plug-in nos testes
  4. Use o mesmo wp core make unit unit para testar vários plugins

O tutorial está aqui , espero que ajude

Daithí
fonte