{"meta":{"title":"Erstellen von Pseudoobjekten zum Abstrahieren von Schichten","intro":"Copilot Chat kann beim Erstellen von Pseudoobjekten helfen, die Sie für Komponententests verwenden können.","product":"GitHub Copilot","breadcrumbs":[{"href":"/de/copilot","title":"GitHub Copilot"},{"href":"/de/copilot/tutorials","title":"Anleitungen"},{"href":"/de/copilot/tutorials/copilot-cookbook","title":"GitHub Copilot Kochbuch"},{"href":"/de/copilot/tutorials/copilot-cookbook/testing-code","title":"Testen von Code"},{"href":"/de/copilot/tutorials/copilot-cookbook/testing-code/create-mock-objects","title":"Erstellen von Pseudoobjekten"}],"documentType":"article"},"body":"# Erstellen von Pseudoobjekten zum Abstrahieren von Schichten\n\nCopilot Chat kann beim Erstellen von Pseudoobjekten helfen, die Sie für Komponententests verwenden können.\n\nBeim Erstellen von Komponententests sollte sichergestellt werden, dass sie isoliert und nicht von externen Diensten abhängig sind. Dies erreichst du durch Erstellen von Pseudoobjekten, die die Schichten deiner Anwendung abstrahieren.\nCopilot Chat kann Ihnen dabei helfen, den Code zu generieren, den Sie zum Erstellen dieser Pseudoobjekte benötigen.\n\n## Beispielszenario\n\nStelle dir eine Website vor, die mit TypeScript erstellt wurde und eine Runnerliste anzeigt. Du hast einen Dienst, der Läufer aus einer Datenbank abruft, und den serverseitigen Code, der diesen Dienst verwendet. Du möchtest den serverseitigen Code testen, aber keinen Aufruf an die Datenbank durchführen. Sie können Copilot Chat bitten, ein Mockobjekt für den Dienst zu generieren.\n\n```typescript id=mock-service\n// SvelteKit example at +page.server.ts\nimport service from './service';\n\nexport async function load({ params }) {\n  const runner = await service.getRunner(params.id);\n\n  return {\n    runner\n  };\n}\n```\n\n## Beispielaufforderung\n\nIn diesem Beispiel wird davon ausgegangen, dass du für deine Tests [vitest](https://vitest.dev/) verwendest, aber mit anderen Testrunnern arbeitest.\n\n```copilot copy prompt ref=mock-service\n/tests Create a unit test to ensure the service is called correctly. Mock the service object.\n```\n\nWenn Sie über einen vorhandenen Test verfügen, den Sie Copilot als Vorlage verwenden möchten, können Sie `#file: path/to/test-file.js` den Pfad zur Datei angeben und diese Informationen in den Prompt aufnehmen.\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 liefert den Plan, den es umsetzen wird, und den Code, der die Mocks enthält.\n\n```typescript\nimport { describe, it, expect, vi, beforeEach } from 'vitest';\nimport { load } from './+page.server.ts';\n\n// Mock the entire service module\nvi.mock('./service', () => ({\n  default: {\n    getRunner: vi.fn()\n  }\n}));\n\n// Import the mocked service\nimport service from './service';\n\ndescribe('load function', () => {\n  const mockRunner = {\n    id: '123',\n    name: 'Test Runner',\n    status: 'active'\n  };\n\n  beforeEach(() => {\n    // Reset mock before each test\n    vi.resetAllMocks();\n\n    // Setup default mock implementation\n    (service.getRunner as any).mockResolvedValue(mockRunner);\n  });\n\n  it('should fetch runner with correct id', async () => {\n    const params = { id: '123' };\n    const result = await load({ params });\n\n    expect(service.getRunner).toHaveBeenCalledWith('123');\n    expect(service.getRunner).toHaveBeenCalledTimes(1);\n    expect(result).toEqual({ runner: mockRunner });\n  });\n});\n```\n\n## Weiterführende Lektüre\n\n* [Prompt-Engineering für GitHub Copilot Chat](/de/copilot/concepts/prompting/prompt-engineering)\n* [Bewährte Methoden für die Verwendung von GitHub Copilot](/de/copilot/get-started/best-practices)"}