À propos du projet

Hypothesis est une bibliothèque de tests basés sur les propriétés pour Python. Au lieu d'écrire des tests avec des entrées fixes, les développeurs décrivent la plage d'entrées qu'une fonction doit gérer, et Hypothesis génère aléatoirement des cas de test à partir de cette plage—y compris des cas limites que le développeur n'aurait peut-être pas anticipés. Le flux de travail principal utilise le décorateur @given et un module de stratégies. Par exemple, un test peut être écrit sous la forme @given(st.lists(st.integers())) pour générer automatiquement des listes d'entiers et vérifier qu'une fonction de tri personnalisée correspond au sorted() intégré de Python. Cette approche détecte des bugs et des cas limites qui seraient manqués par des cas de test écrits à la main. Lorsque Hypothesis trouve un test en échec, il ne signale pas une entrée en échec arbitraire. Au lieu de cela, il réduit le cas d'échec au plus simple possible, ce qui facilite considérablement le débogage. Par exemple, si une fonction de tri déduplique incorrectement l'entrée, Hypothesis signale le cas d'échec minimal tel que ls=[0, 0] plutôt qu'une grande liste aléatoire. L'installation est simple via pip install hypothesis. Des extras optionnels sont disponibles pour des fonctionnalités supplémentaires. Le projet comprend une documentation, un site web et une section communautaire pour les contributeurs et les utilisateurs.