{"meta":{"title":"Mise à jour des tests unitaires pour correspondre aux modifications du code","intro":"Discussion avec Copilot peut vous aider à mettre à jour vos tests.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials","title":"Tutoriels"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-chat-cookbook","title":"Cookbook GitHub Copilot Chat"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-chat-cookbook/testing-code","title":"Le test du code"},{"href":"/fr/enterprise-cloud@latest/copilot/tutorials/copilot-chat-cookbook/testing-code/update-unit-tests","title":"Mettre à jour des tests unitaires"}],"documentType":"article"},"body":"# Mise à jour des tests unitaires pour correspondre aux modifications du code\n\nDiscussion avec Copilot peut vous aider à mettre à jour vos tests.\n\nLorsque vous apportez des modifications à votre code, il est important de mettre à jour les tests afin de vérifier le nouveau comportement et d’intercepter les bogues introduits par le nouveau code. Discussion avec Copilot peut vous aider à mettre à jour rapidement les tests pour qu’ils correspondent à vos modifications de code, ce qui garantit que votre suite de tests reste synchronisée avec votre implémentation.\n\n## Exemple de scénario\n\nImaginez que vous disposez d’une fonction Python, `calculate_discount`qui détermine la remise pour un montant d’achat donné. Dans le code d’origine, vous obtenez une remise de 10% pour les montants de plus de 100 $. Vous apportez des modifications à la logique de la fonction, de sorte que seuls les prix de plus de 150 $ obtiennent une remise de 10%, et il y a maintenant une remise de 20% pour les montants de plus de 200 $.\n\n### Code d’origine\n\nDans le code d’origine, les prix d’achat supérieurs à 100 $ obtiennent une remise de 10%.\n\n```python\ndef calculate_discount(amount: float) -> float:\n    if amount > 100:\n        return amount * 0.1  # 10% discount\n    return 0.0\n```\n\n### Code mis à jour\n\nDans le code modifié, seuls les montants supérieurs à 150 $ obtiennent 10% remise, et les montants supérieurs à 200 $ obtiennent maintenant une remise de 20%.\n\n```python id=calculate_discount\ndef calculate_discount(amount: float) -> float:\n    if amount > 200:\n        return amount * 0.2  \n    elif amount > 150:\n        return amount * 0.1\n    return 0.0\n```\n\n### Tests existants\n\nCet exemple montre les tests existants qui ont été écrits pour le code d’origine.\n\n```python\nimport unittest\nfrom discount import calculate_discount\n\nclass TestCalculateDiscount(unittest.TestCase):\n    def test_discount_above_100(self):\n        # $140 should get a $14 discount (10%)\n        self.assertAlmostEqual(calculate_discount(140), 14.0)\n    \n    def test_discount_below_100(self):\n        # $80 should get no discount\n        self.assertEqual(calculate_discount(80), 0.0)\n\n    def test_discount_exactly_100(self):\n        # $100 is not above 100, so no discount\n        self.assertEqual(calculate_discount(100), 0.0)\n\nif __name__ == '__main__':\n    unittest.main()\n```\n\n## Exemples d’invite\n\nVous pouvez demander Discussion avec Copilot pour identifier et mettre à jour tous les tests affectés par votre modification logique.\n\n```copilot\nGiven the update to the `calculate_discount` function, update the unit tests that may fail or become outdated as a result.\n```\n\n## Exemple de réponse\n\n> \\[!NOTE] La réponse suivante est un exemple. Les réponses Discussion avec Copilot ne sont pas déterministes, vous pouvez donc obtenir une réponse différente de celle affichée ici.\n\nDiscussion avec Copilot analyse votre code et vos tests existants, et identifie les tests qui échouent ou sont désormais trompeurs en suivant votre modification de code.\n\nPar exemple, Discussion avec Copilot explique que :\n\n* `test_discount_above_100`\n  **va échouer**\n* `test_discount_below_100` et `test_discount_exactly_100` passeront, mais ils sont maintenant **trompeurs**, puisque le seuil de la remise de 10% est maintenant de 150 $, et non pas 100 $.\n\nEn outre, Discussion avec Copilot identifie toute **couverture de test manquante**, telle que le nouveau niveau de remise de 20% pour les montants de plus de 200 $.\n\nDiscussion avec Copilot propose un ensemble de tests mis à jour.\n\n### Mises à jour des tests\n\n```python\nimport unittest\nfrom discount import calculate_discount\n\nclass TestCalculateDiscount(unittest.TestCase):\n    def test_discount_above_200(self):\n        # $250 should get a $50 discount (20%)\n        self.assertAlmostEqual(calculate_discount(250), 50.0)\n\n    def test_discount_above_150(self):\n        # $175 should get a $17.50 discount (10%)\n        self.assertAlmostEqual(calculate_discount(175), 17.5)\n\n    def test_discount_at_or_below_150(self):\n        # $150 is not above 150, so no discount\n        self.assertEqual(calculate_discount(150), 0.0)\n        # $80 should get no discount\n        self.assertEqual(calculate_discount(80), 0.0)\n\nif __name__ == '__main__':\n    unittest.main()\n```\n\n## Lectures complémentaires\n\n* [Ingénierie rapide pour GitHub Copilot Chat](/fr/enterprise-cloud@latest/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Meilleures pratiques pour l’utilisation de GitHub Copilot](/fr/enterprise-cloud@latest/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}