MockPress: TDD mais fácil no WordPress

Praticar TDD no WordPress não é trivial. Como utiliza variáveis globais, não é difícil fazer Mocks para vários objetos (o objeto $wpdb de conexão com banco de dados, por exemplo). Mas se você já desenvolveu algum plugin, sabe que é necessário mais do que os objetos globais. A todo momento, é necessário utilizar funções próprias do WordPress. O desafio é testar seu plugin sem precisar testar todo o CMS. Para resolver este problema, existe o MockPress.

MockPress é uma biblioteca de funções mock. O criador, John Bintz, fez um bom trabalho criando uma instalação fácil e uma boa documentação. O código-fonte também está muito bem escrito (e testado). Para instalar a versão mais atual, só é necessário clonar o projeto no github e adicioná-lo ao seu include_path.

Após instalado, inclua o seguinte entre os requires de seus testes:

require_once "MockPress/mockpress.php";

Pronto, agora você pode utilizar as funções do WordPress em seus testes unitários. Recomendo apenas que você dê uma lida no código-fonte para entender quais são os retornos das funções mock.

Nem todas as funções do WordPress estão presentes no MockPress. Se você precisar de alguma função adicional, recomendo que contribua com o projeto. Das duas vezes que enviei uma contribuição, foi aceita bem rápido e sem burocracia.

Lembre-se que este é um projeto ainda em estágio inicial, apesar de muito útil e quanto mais adoção houver, mais completo deverá se tornar.

Anúncios

A Arte do Desenvolvimento Ágil

Há muito tempo, desenvolvimento ágil é um assunto do meu interesse. Este interesse começou em 2005 quando li um e-book que explicava superficialmente o que é XP. Anos passaram, fiz faculdade, aprendi mais sobre desenvolvimento software,  e meu conhecimento sobre este tema não passou do “superficial”.

Resolvi comprar o livro The Art of Agile Development de James ShoreShane Warden (comprei o original, mas também existe a versão em português). A descrição, na página da amazon, diz que o livro não diz apenas o que é Desenvolvimento Ágil, mas trás informações práticas para adotá-lo por todos os envolvidos no projeto. Isto era exatamente o que eu precisava.

O livro cumpre exatamente o que se propõe. É muito interessante repensar conceitos sobre qualidade e sucesso de um projeto, entender conceitos como TDDDomain-Driven DesignPair Programming,  etc. Além de saber o que é e como fazer, também fui incentivado a descobrir o porquê dos conceitos. O livro te leva à reflexão de uma forma muito interessante, pois depois das explicações, também são apresentadas contra-indicações e alternativas. O livro contém experiências dos autores e exercícios que são usados para que possamos entender melhor algumas práticas.

A cada nova prática utilizada, os benefícios são quase instantâneos. Como dito por um dos participantes da grupo de discussão do XP: O desenvolvimento ágil fez com que o desenvolvimento de software voltasse a ser divertido.