{"meta":{"title":"Génération de tests unitaires","intro":"Discussion avec Copilot peut aider à générer des tests unitaires pour une fonction.","product":"GitHub Copilot","breadcrumbs":[{"href":"/fr/copilot","title":"GitHub Copilot"},{"href":"/fr/copilot/tutorials","title":"Tutoriels"},{"href":"/fr/copilot/tutorials/copilot-chat-cookbook","title":"Cookbook GitHub Copilot Chat"},{"href":"/fr/copilot/tutorials/copilot-chat-cookbook/testing-code","title":"Le test du code"},{"href":"/fr/copilot/tutorials/copilot-chat-cookbook/testing-code/generate-unit-tests","title":"Générer des tests unitaires"}],"documentType":"article"},"body":"# Génération de tests unitaires\n\nDiscussion avec Copilot peut aider à générer des tests unitaires pour une fonction.\n\nUne bonne suite de tests unitaires est essentielle au succès de toute project. Toutefois, l’écriture de ces tests peut prendre du temps et sont souvent négligés. Discussion avec Copilot peut vous aider à générer ces tests.\n\n## Exemple de scénario\n\nImaginez que vous disposez d’une fonction Python qui valide les données avant de mettre à jour la base de données. Vous devez créer des tests unitaires pour vous assurer que la validation effectue la façon dont vous vous attendez. Vous pouvez demander à Discussion avec Copilot de générer ces tests pour vous.\n\n```python id=validate-price\ndef validate_price(price: float):\n  if price <= 0:\n    raise ValueError(\"Price must be greater than 0\")\n  if price > 1000:\n    raise ValueError(\"Price must be less than or equal to 1000\")\n```\n\n## Exemple d’invite\n\n```copilot copy prompt ref=validate-price\n/tests Generate unit tests for this function. Validate both success and failure, and include edge cases.\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\nSi c’est la première fois que vous demandez à Discussion avec Copilot de générer des tests unitaires, il peut vous demander si vous souhaitez configurer des tests unitaires pour votre project. Pour cet exemple, nous partons du principe que vous refusez cette offre.\n\nCopilot fournira une stratégie pour générer les tests, puis fournira les tests eux-mêmes.\n\n```python\nimport unittest\nfrom generate_unit_tests import validate_price\n\nclass TestValidateProduct(unittest.TestCase):\n  def test_price_zero(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(0)\n    self.assertEqual(str(context.exception), \"Price must be greater than 0\")\n\n  def test_price_negative(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(-10)\n    self.assertEqual(str(context.exception), \"Price must be greater than 0\")\n\n  def test_price_above_limit(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(1500)\n    self.assertEqual(str(context.exception), \"Price must be less than or equal to 1000\")\n\n  def test_price_edge_case_zero(self):\n    with self.assertRaises(ValueError) as context:\n      validate_price(0)\n    self.assertEqual(str(context.exception), \"Price must be greater than 0\")\n\n  def test_price_edge_case_max(self):\n    try:\n      validate_price(1000)\n    except ValueError:\n      self.fail(\"validate_price() raised ValueError unexpectedly!\")\n\nif __name__ == '__main__':\n  unittest.main()\n```\n\n## Pour approfondir\n\n* [Ingénierie rapide pour GitHub Copilot Chat](/fr/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Meilleures pratiques pour l’utilisation de GitHub Copilot](/fr/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}