{"meta":{"title":"Mise à jour des tests unitaires pour correspondre aux modifications du code","intro":"Copilot Chat peut vous aider à mettre à jour vos tests.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/tutorials","title":"Tutoriels"},{"href":"/fr/copilot/tutorials/copilot-cookbook","title":"livre de recettes GitHub Copilot"},{"href":"/fr/copilot/tutorials/copilot-cookbook/testing-code","title":"Le test du code"},{"href":"/fr/copilot/tutorials/copilot-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\nCopilot Chat 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.\nCopilot Chat 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## Exemple d’invite\n\nVous pouvez demander Copilot Chat à 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 Copilot Chat ne sont pas déterministes, vous pouvez donc obtenir une réponse différente de celle affichée ici.\n\nCopilot Chat 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, Copilot Chat explique que :\n\n* `test_discount_above_100`\n  **échouera** maintenant\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, Copilot Chat identifie toute **couverture de test manquante**, telle que le nouveau niveau de remise de 20% pour les montants de plus de 200 $.\n\nCopilot Chat 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/copilot/concepts/prompting/prompt-engineering)\n* [Meilleures pratiques pour l’utilisation de GitHub Copilot](/fr/copilot/get-started/best-practices)"}