Escrever testes unitários pode ser difícil e, às vezes, um bom design precisa ser sacrificado pelo único propósito de testabilidade. Muitas vezes a testabilidade corresponde a um bom design, mas nem sempre é esse o caso. Por exemplo, classes e métodos finais não podem ser usados, métodos privados às vezes precisam ser protegidos ou movidos desnecessariamente para um colaborador, métodos estáticos devem ser completamente evitados e assim por diante, simplesmente por causa das limitações dos frameworks existentes.
PowerMock é uma estrutura que estende outras bibliotecas simuladas, como EasyMock, com recursos mais poderosos. PowerMock usa um carregador de classe personalizado e manipulação de bytecode para permitir simulação de métodos estáticos, construtores, classes e métodos finais, métodos privados, remoção de inicializadores estáticos e muito mais. Ao usar um carregador de classe personalizado, nenhuma alteração precisa ser feita no IDE ou nos servidores de integração contínua, o que simplifica a adoção. Os desenvolvedores familiarizados com as estruturas simuladas suportadas acharão o PowerMock fácil de usar, já que toda a API de expectativa é a mesma, tanto para métodos estáticos quanto para construtores. PowerMock visa estender as APIs existentes com um pequeno número de métodos e anotações para habilitar recursos extras. Atualmente PowerMock suporta EasyMock e Mockito.
Ao escrever testes unitários, muitas vezes é útil ignorar o encapsulamento e, portanto, o PowerMock inclui vários recursos que simplificam a reflexão, especificamente úteis para testes. Isso permite fácil acesso ao estado interno, mas também simplifica a zombaria parcial e privada.
Observe que o PowerMock se destina principalmente a pessoas com conhecimento especializado em testes unitários. Colocá-lo nas mãos de desenvolvedores juniores pode causar mais danos do que benefícios.
@PowerMockIgnore
global, bem como correções de bugs e outras melhorias. Consulte as notas de versão e o log de alterações para obter detalhes.Notícias mais antigas
Por favor, leia as diretrizes para um novo contribuidor antes de começar.
Junte-se à lista de discussão aqui para perguntas, comentários e suporte.