{"meta":{"title":"Actualización de pruebas unitarias para que coincidan con los cambios de código","intro":"Chat de Copiloto puede ayudar a actualizar los tests.","product":"GitHub Copilot","breadcrumbs":[{"href":"/es/copilot","title":"GitHub Copilot"},{"href":"/es/copilot/tutorials","title":"Tutoriales"},{"href":"/es/copilot/tutorials/copilot-chat-cookbook","title":"Guía de GitHub Copilot Chat"},{"href":"/es/copilot/tutorials/copilot-chat-cookbook/testing-code","title":"Probar el código"},{"href":"/es/copilot/tutorials/copilot-chat-cookbook/testing-code/update-unit-tests","title":"Actualizar pruebas unitarias"}],"documentType":"article"},"body":"# Actualización de pruebas unitarias para que coincidan con los cambios de código\n\nChat de Copiloto puede ayudar a actualizar los tests.\n\nAl realizar cambios en el código, es importante actualizar las pruebas para comprobar el nuevo comportamiento y detectar los errores que haya introducido el nuevo código. Chat de Copiloto puede ayudarle a actualizar rápidamente las pruebas para que coincidan con los cambios de código, lo que garantiza que el conjunto de pruebas permanece sincronizado con la implementación.\n\n## Escenario de ejemplo\n\nImagine que tiene una función de Python, `calculate_discount`, que determina el descuento de un importe de compra determinado. En el código original, obtendrá un descuento de 10% por importes superiores a 100 USD. Está realizando cambios en la lógica de la función, de modo que solo los precios superiores a 150 USD obtengan un descuento del 10% y ahora hay un descuento del 20% para montos superiores a 200 USD.\n\n### Código original\n\nEn el código original, los precios de compra por encima de $100 obtienen un descuento 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### Código actualizado\n\nEn el código modificado, solo los importes superiores a $150 obtienen 10% descuento, y los importes superiores a $200 ahora obtienen un descuento 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### Pruebas existentes\n\nEn este ejemplo se muestran las pruebas existentes escritas para el código original.\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## Ejemplo de sugerencia\n\nPuede pedir a Chat de Copiloto que identifique y actualice las pruebas afectadas por el cambio en la lógica.\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## 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\nChat de Copiloto analiza el código y las pruebas existentes, e identifica qué pruebas producirán un error o ahora son engañosas después del cambio de código.\n\nPor ejemplo, Chat de Copiloto explica que:\n\n* `test_discount_above_100` ahora **tendrá errores**\n* `test_discount_below_100` y `test_discount_exactly_100` seguirán siendo válidos, pero ahora son **confusos**, ya que el umbral del 10% de descuento es de $150 y no de $100.\n\nAdemás, Chat de Copiloto identifica cualquier **cobertura de prueba que falte**, como el nuevo plan de descuento del 20% para importes superiores a 200 dólares.\n\nChat de Copiloto propone un conjunto actualizado de pruebas.\n\n### Pruebas actualizadas\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## 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)"}