L'écriture de tests unitaires peut être difficile et parfois une bonne conception doit être sacrifiée dans le seul but de la testabilité.La testabilité correspond souvent à une bonne conception, mais ce n'est pas toujours le cas.Par exemple, les classes et méthodes finales ne peuvent pas être utilisées, les méthodes privées doivent parfois être protégées ou déplacées inutilement vers un collaborateur, les méthodes statiques doivent être évitées complètement et ainsi de suite simplement en raison des limites des frameworks existants.PowerMock est un framework qui étend d'autres bibliothèques fictives telles qu'EasyMock avec des capacités plus puissantes.PowerMock utilise un chargeur de classe personnalisé et une manipulation de bytecode pour permettre la simulation des méthodes statiques, des constructeurs, des classes et méthodes finales, des méthodes privées, la suppression des initialiseurs statiques et plus encore.En utilisant un chargeur de classe personnalisé, aucune modification ne doit être apportée à l'IDE ou aux serveurs d'intégration continue, ce qui simplifie l'adoption.Les développeurs familiers avec les mock frameworks pris en charge trouveront PowerMock facile à utiliser, car toute l'API d'attente est la même, à la fois pour les méthodes statiques et les constructeurs.PowerMock vise à étendre les API existantes avec un petit nombre de méthodes et d'annotations pour activer les fonctionnalités supplémentaires.Actuellement, PowerMock prend en charge EasyMock et Mockito .... Lors de l'écriture de tests unitaires, il est souvent utile de contourner l'encapsulation et, par conséquent, PowerMock comprend plusieurs fonctionnalités qui simplifient la réflexion particulièrement utile pour les tests.Cela permet un accès facile à l'état interne, mais simplifie également les moqueries partielles et privées.Veuillez noter que PowerMock est principalement destiné aux personnes ayant une connaissance approfondie des tests unitaires.Le mettre entre les mains des développeurs juniors peut causer plus de mal que de bien.