# 生成单元测试

为代码创建有针对性的单元测试。

> \[!NOTE]
> \*
> Copilot 提示文件位于 公开预览 并且可能会更改。
> 提示文件仅适用于 VS Code、Visual Studio 和 JetBrains IDE。 请参阅 [关于自定义GitHub Copilot 响应](/zh/copilot/concepts/prompting/response-customization#about-prompt-files)。
>
> * 有关社区贡献的特定语言和场景的提示文件示例，请参阅 GitHub Copilot 网站。

此提示文件针对特定功能或方法生成有针对性的单元测试，强调实际测试用例和可维护的代码。

## 单元测试生成提示

```text copy
---
agent: 'agent'
description: 'Generate unit tests for selected functions or methods'
---

## Task

Analyze the selected function/method and generate focused unit tests that thoroughly validate its behavior.

## Test Generation Strategy

1. **Core Functionality Tests**
   - Test the main purpose/expected behavior
   - Verify return values with typical inputs
   - Test with realistic data scenarios

2. **Input Validation Tests**
   - Test with invalid input types
   - Test with null/undefined values
   - Test with empty strings/arrays/objects
   - Test boundary values (min/max, zero, negative numbers)

3. **Error Handling Tests**
   - Test expected exceptions are thrown
   - Verify error messages are meaningful
   - Test graceful handling of edge cases

4. **Side Effects Tests** (if applicable)
   - Verify external calls are made correctly
   - Test state changes
   - Validate interactions with dependencies

## Test Structure Requirements

- Use existing project testing framework and patterns
- Follow AAA pattern: Arrange, Act, Assert
- Write descriptive test names that explain the scenario
- Group related tests in describe/context blocks
- Mock external dependencies cleanly

Target function: ${input:function_name:Which function or method should be tested?}
Testing framework: ${input:framework:Which framework? (jest/vitest/mocha/pytest/rspec/etc)}

## Guidelines

- Generate 5-8 focused test cases covering the most important scenarios
- Include realistic test data, not just simple examples
- Add comments for complex test setup or assertions
- Ensure tests are independent and can run in any order
- Focus on testing behavior, not implementation details

Create tests that give confidence the function works correctly and help catch regressions.
```

## 如何使用此提示文件

1. 将上述内容另存为 `generate-unit-tests.prompt.md`，并将其保存在 `.github/prompts` 文件夹中。
2. 打开包含要测试的函数的代码文件。 （可选）可以突出显示特定函数。
3. 在 Visual Studio Code 中，显示 副驾驶聊天 视图，然后输入 `/generate-unit-tests`。 例如，（可选）也可以通过键入 `function_name=fetchActivities` 和 `framework=pytest` 来指定目标函数和测试框架。

## 其他阅读材料

* Visual Studio Code 文档中的[使用 Visual Studio Code 中的提示文件](https://code.visualstudio.com/docs/copilot/customization/prompt-files) - 有关如何创建和使用提示文件的信息
* [关于自定义GitHub Copilot 响应](/zh/copilot/concepts/response-customization) - GitHub Copilot 中的响应自定义概述
* [出色的 GitHub Copilot 自定义内容](https://github.com/github/awesome-copilot/blob/main/docs/README.prompts.md) - 社区提供的自定义提示文件的仓库以及特定语言和场景的其他自定义内容