{"meta":{"title":"Generación de pruebas unitarias","intro":"Chat de Copiloto puede ayudar a generar pruebas unitarias para una función.","product":"GitHub Copilot","breadcrumbs":[{"href":"/es/copilot","title":"GitHub Copilot"},{"href":"/es/copilot/tutorials","title":"Tutoriales"},{"href":"/es/copilot/tutorials/copilot-cookbook","title":"Recetario de GitHub Copilot"},{"href":"/es/copilot/tutorials/copilot-cookbook/testing-code","title":"Probar el código"},{"href":"/es/copilot/tutorials/copilot-cookbook/testing-code/generate-unit-tests","title":"Generación de pruebas unitarias"}],"documentType":"article"},"body":"# Generación de pruebas unitarias\n\nChat de Copiloto puede ayudar a generar pruebas unitarias para una función.\n\nUn buen conjunto de pruebas unitarias es fundamental para el éxito de cualquier proyecto. Sin embargo, escribir estas pruebas puede llevar mucho tiempo y a menudo se ignoran.\nChat de Copiloto puede ayudarte a generar estas pruebas por ti.\n\n## Escenario de ejemplo\n\nImagina que tienes una función de Python que valida los datos antes de actualizar la base de datos. Debes crear pruebas unitarias para asegurarte de que la validación se realiza de la manera esperada. Puede pedir que Chat de Copiloto genere estas pruebas automáticamente.\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## Mensaje de ejemplo\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## Respuesta de ejemplo\n\n> \\[!NOTE] La respuesta siguiente es un ejemplo. Las respuestas de Chat de Copiloto no son deterministas, por lo que puedes obtener una respuesta diferente a la aquí mostrada.\n\nSi esta es la primera vez que solicita Chat de Copiloto generar pruebas unitarias, puede preguntarle si desea configurar pruebas unitarias para el proyecto. En este ejemplo, se supone que rechazas esta oferta.\n\nCopilot proporcionará una estrategia para generar las pruebas y, a continuación, proporcionará las propias pruebas.\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## Lectura adicional\n\n* [Ingeniería de mensajes para GitHub Copilot Chat](/es/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Procedimientos recomendados para usar GitHub Copilot](/es/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}