{"meta":{"title":"Aktualisieren von Komponententests zur Anpassung an Codeänderungen","intro":"Copilot-Chat kann bei der Aktualisierung Ihrer Tests helfen.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/tutorials","title":"Anleitungen"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook","title":"GitHub Copilot Chat-Cookbook"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook/testing-code","title":"Testen von Code"},{"href":"/de/copilot/tutorials/copilot-chat-cookbook/testing-code/update-unit-tests","title":"Aktualisieren von Komponententests"}],"documentType":"article"},"body":"# Aktualisieren von Komponententests zur Anpassung an Codeänderungen\n\nCopilot-Chat kann bei der Aktualisierung Ihrer Tests helfen.\n\nWenn Sie Änderungen am Code vornehmen, ist es wichtig, alle Tests zu aktualisieren, um das neue Verhalten zu überprüfen und alle Fehler abzufangen, die der neue Code eingeführt hat. Copilot-Chat kann Ihnen dabei helfen, die Tests schnell zu aktualisieren, sodass sie Ihren Codeänderungen entsprechen und Ihre Testsuite mit der Implementierung synchronisiert bleibt.\n\n## Beispielszenario\n\nStellen Sie sich vor, Sie haben eine Python-Funktion, `calculate_discount`die den Rabatt für einen bestimmten Einkaufsbetrag bestimmt. Im ursprünglichen Code erhalten Sie einen Rabatt von 10% für Beträge über 100 $. Sie nehmen Änderungen an der Logik der Funktion vor, sodass nur Preise über 150 $ einen Rabatt von 10% erhalten, und es gibt jetzt einen Rabatt von 20% für Beträge über 200 $.\n\n### Originalcode\n\nIm ursprünglichen Code erhalten die Kaufpreise über 100 $ einen Rabatt von 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### Aktualisierter Code\n\nIm geänderten Code erhalten nur Beträge über $ 150 erhalten 10% Rabatt, und Beträge über $ 200 erhalten jetzt einen Rabatt von 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### Vorhandene Tests\n\nDieses Beispiel zeigt die vorhandenen Tests, die für den ursprünglichen Code geschrieben wurden.\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## Beispielaufforderung\n\nSie können Copilot-Chat darum bitten, alle von Ihrer Logikänderung betroffenen Tests zu identifizieren und zu aktualisieren.\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## Beispielantwort\n\n> \\[!NOTE] Die folgende Antwort ist ein Beispiel. Da die Copilot-Chat-Antworten nicht deterministisch sind, erhältst du möglicherweise eine andere Antwort als die hier beschriebene.\n\nCopilot-Chat analysiert Ihren Code und die bestehenden Tests und erkennt, welche Tests nach Ihrer Codeänderung fehlschlagen werden oder nun irreführend sind.\n\nBeispielsweise erläutert Copilot-Chat wie folgt:\n\n* `test_discount_above_100` wird jetzt **fehlschlagen**\n* `test_discount_below_100` und `test_discount_exactly_100` werden übergeben, sind aber jetzt **irreführend**, da der Schwellenwert für den 10 %-Rabatt jetzt bei 150 USD und nicht mehr bei 100 USD liegt.\n\nDarüber hinaus identifiziert Copilot-Chat alle **fehlenden Testabdeckungen**, z. B. das neue Rabattniveau von 20 % für Beträge über 200 USD.\n\nCopilot-Chat schlägt eine aktualisierte Gruppe von Tests vor.\n\n### Aktualisierte 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## Weiterführende Lektüre\n\n* [Prompt-Engineering für GitHub Copilot Chat](/de/copilot/using-github-copilot/prompt-engineering-for-github-copilot)\n* [Bewährte Methoden für die Verwendung von GitHub Copilot](/de/copilot/using-github-copilot/best-practices-for-using-github-copilot)"}