L'écriture de tests unitaires peut être difficile et parfois une bonne conception doit être sacrifiée au seul but de la testabilité. Souvent la testabilité correspond à 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 inutilement déplacées vers un collaborateur, les méthodes statiques doivent être complètement évitées, etc. simplement en raison des limitations des frameworks existants.
PowerMock est un framework qui étend d'autres bibliothèques fictives telles que EasyMock avec des fonctionnalité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 bien 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 frameworks fictifs pris en charge trouveront PowerMock facile à utiliser, puisque l'intégralité de 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 PowerMock inclut donc plusieurs fonctionnalités qui simplifient la réflexion spécifiquement utiles 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 des connaissances expertes en tests unitaires. Le confier à des développeurs juniors peut causer plus de mal que de bien.
@PowerMockIgnore
global ainsi que des corrections de bugs et d'autres améliorations. Consultez les notes de version et le journal des modifications pour plus de détails.Actualités plus anciennes
Veuillez lire les directives destinées aux nouveaux contributeurs avant de commencer.
Rejoignez la liste de diffusion ici pour des questions, des commentaires et de l'assistance.