{"meta":{"title":"Testen der Automatisierung","intro":"Dateispezifische Anweisungen zum Schreiben von Unit-Tests","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/tutorials","title":"Anleitungen"},{"href":"/de/copilot/tutorials/customization-library","title":"Anpassungsbibliothek"},{"href":"/de/copilot/tutorials/customization-library/custom-instructions","title":"Benutzerdefinierte Anweisungen"},{"href":"/de/copilot/tutorials/customization-library/custom-instructions/testing-automation","title":"Testen der Automatisierung"}],"documentType":"article"},"body":"# Testen der Automatisierung\n\nDateispezifische Anweisungen zum Schreiben von Unit-Tests\n\n> \\[!NOTE]\n>\n> * Die Beispiele in dieser Bibliothek dienen der Inspiration. Du solltest sie so anpassen, dass sie für deine Projekte, Sprachen und Teamprozesse spezifischer sind.\n> * Beispiele für von der Community bereitgestellte benutzerdefinierte Anweisungen für bestimmte Sprachen und Szenarios findest du im Repository [Großartige GitHub Copilot-Anpassungen](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md).\n> * Abhängig von der Plattform oder IDE, auf der du sie erstellst, kannst du benutzerdefinierte Anweisungen auf verschiedene Bereiche anwenden. Weitere Informationen findest du unter [Informationen zum Anpassen der GitHub Copilot-Antworten](/de/copilot/concepts/prompting/response-customization).\n\nDieses Beispiel zeigt eine pfadspezifische `python-tests.instructions.md`-Datei, die unter Verwendung des Felds `applyTo` nur auf Python-Testdateien in Ihrem Repository angewendet wird. Weitere Informationen zu pfadspezifischen Anweisungen findest du unter [Hinzufügen von benutzerdefinierten Repositoryanweisungen für GitHub Copilot](/de/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-repository-instructions#creating-path-specific-custom-instructions).\n\n````text copy\n---\napplyTo: \"tests/**/*.py\"\n---\n\nWhen writing Python tests:\n\n## Test Structure Essentials\n- Use pytest as the primary testing framework\n- Follow AAA pattern: Arrange, Act, Assert\n- Write descriptive test names that explain the behavior being tested\n- Keep tests focused on one specific behavior\n\n## Key Testing Practices\n- Use pytest fixtures for setup and teardown\n- Mock external dependencies (databases, APIs, file operations)\n- Use parameterized tests for testing multiple similar scenarios\n- Test edge cases and error conditions, not just happy paths\n\n## Example Test Pattern\n```python\nimport pytest\nfrom unittest.mock import Mock, patch\n\nclass TestUserService:\n    @pytest.fixture\n    def user_service(self):\n        return UserService()\n\n    @pytest.mark.parametrize(\"invalid_email\", [\"\", \"invalid\", \"@test.com\"])\n    def test_should_reject_invalid_emails(self, user_service, invalid_email):\n        with pytest.raises(ValueError, match=\"Invalid email\"):\n            user_service.create_user({\"email\": invalid_email})\n\n    @patch('src.user_service.email_validator')\n    def test_should_handle_validation_failure(self, mock_validator, user_service):\n        mock_validator.validate.side_effect = ConnectionError()\n\n        with pytest.raises(ConnectionError):\n            user_service.create_user({\"email\": \"test@example.com\"})\n```\n````"}