Recentemente foi liberada a versão 1.8 (rc2) do framework Mockito e a InfoQ teve a chance de conversar com o project owner, Szczepan Faber.
Nota, a versão 1.8 ainda não tem um release final, Szczepan promete que será equivalente a 1.8 RC2 liberada a qualquer momento.
InfoQ: O que os desenvolvedores podem esperar para o release 1.8?
Não há grandes mudanças na 1.8, mas o release contém um par de funcionalidades que devem tornar a vida de um programador mais fácil. Existe uma API para capturar argumentos possibilitando novos assertions. Isto torna a verificação de parâmetros muito mais eficaz.
Nós decidimos adicionar aliases na API stubbing para integrar harmoniosamente com o estilo de escrita do desenvolvimento de testes unitários orientados a comportamento (BDD). Isso significa que os seus comentários //dado //sendo //quando //então agora serão lidos de uma forma bem interessante, com o novo stubbing alias given().willReturn() ( Ex. dado(xpto).Retornará(xyz) ).
Esta edição do Mockito finalmente ganhou 'verdadeiros' partial mocks. Debatemos muito tempo se esse era um recurso válido e finalmente encontramos casos práticos de uso. A lista completa de funcionalidades está disponível em: http://code.google.com/p/mockito/wiki/ReleaseNotes
InfoQ: O que está previsto após o 1.8?
Eu pensei que o trabalho no Mockito fosse terminar com o 1.0, mas de alguma forma há sempre um fluxo de novas idéias e melhorias. Muitos agradecimentos aos usuários que partilham seus comentários e sugestões através do mockito mailing list. É difícil citar uma funcionalidade específica para releases futuros. Certamente, ainda vamos tentar manter a API simples. Vamos continuar melhorando o failure feedback de modo que os ciclos TDD sejam rápidos e suaves.
InfoQ: Recentemente surgiu um novo projeto chamado Mockito for Flex, trata-se de um sub-projeto oficial do Mockito?
Não trata-se de um sub-projeto porque é uma linguagem totalmente diferente. Acredito que possa dizer algo como uma colaboração oficial porque eu e o Krzysztof Karczmarczyk trabalhamos juntos na implementação do mockito-flex. Penso que Krzysztof atualizou a informação na página principal do mockito-flex.
InfoQ: Você poderia fornecer algumas fontes para realmente explorar a fundo o Mockito e seu leque de funcionalidades?
Qualquer tutorial que aborde mock objects em geral é bom para entender os conceitos. Brett Schuchert escreveu um tutorial sobre Mockito. No que diz respeito a características específicas, toda a documentação, incluindo exemplos de código podem ser encontrados nos javadocs. A razão para mantermos toda a documentação em javadocs é que queremos que seja coerente com aquilo que é apresentado na web em mockito.org. Além disso, é útil se toda documentação está disponível diretamente através da IDE, mesmo quando offline.
Um bom ponto de partida para aprender sobre as funcionalidades presentes é o javadoc da classe Mockito.
Atualmente, mockito-flex está na versão 1.0 e possui as seguintes features:
- Suporte a verificação de chamadas de métodos e acesso a propriedades
- Suporte a stubbing de chamadas de métodos e acesso a propriedades
- Suporte a matchers básicos e API extensível para criação de novos matchers
- Integração com flex unit.
- Baseado no asmock-0.3 (para geração bytecode e manipulação de execução de baixo nível)
Finalmente, se você for um desenvolvedor Python, dê uma olhada em mockito-phyton.