원클릭으로
test
ASP.NET Core / Aspire / TUnit 测试规范与最佳实践。用于集成测试/ApiTest、测试用例编写、测试失败排查与验证流程。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
ASP.NET Core / Aspire / TUnit 测试规范与最佳实践。用于集成测试/ApiTest、测试用例编写、测试失败排查与验证流程。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Microsoft Agent Framework 1.1 (C#) 开发规范与集成要点。USE FOR: ChatClientAgent、AIFunctionFactory、IChatClient tools、AgentThread/Conversation、ResponseFormat、Handoff/Workflow、MCP tool、Memory/ContextProvider、Observability、Foundry Local OpenAI 兼容接入。
Perigon 主入口技能:用于基于 Perigon CLI/MCP 进行项目脚手架、模块与服务生成、DTO/Manager/Controller/Request 客户端生成、MCP 配置与 Studio 操作,并在后端与前端开发中按照模板约定完成代码生成与落地。Use when: any Perigon-based development task, scaffolding, code generation, module/service creation, API client generation, MCP setup, Studio usage, backend/frontend implementation that should follow Perigon conventions.
Angular 21+ 前端开发规范(standalone/Material/signals)。用于 Angular 组件/页面/路由/表单、Material UI、signals 状态、i18n、前端样式与交互相关任务。
全栈代码审查规范(质量/性能/安全/架构/风格)。用于 Code Review、PR 审查、质量门禁、安全与性能检查等任务。
技术文档编写规范 - README、任务分配文档、开发指南、部署文档
| name | test |
| description | ASP.NET Core / Aspire / TUnit 测试规范与最佳实践。用于集成测试/ApiTest、测试用例编写、测试失败排查与验证流程。 |
在编写后端测试代码时,如单元测试、集成测试及其他与测试相关的内容。
tests\ApiTest\:是基于Aspire/Tunit的测试项目,主要用来编写集成测试。TestHttpClientData,用来进行请求授权,使用[ClassDataSource<TestHttpClientData>(Shared = SharedType.PerTestSession)] 特性标记,以避免每次请求都需要重新获取Token。TUnit提供的断言方法进行结果验证,确保测试结果符合预期。集成测试
tests\ApiTest\{ModuleName}\,将该模块的所有测试代码放在该目录下。{EntityName}Tests.cs,将该实体相关的所有测试方法放在该文件中。单元测试
tests\UnitTest\用于编写单元测试,用来测试基础类库和算法逻辑,通常不涉及数据库和业务逻辑。无需清理数据,因为使用aspire运行测试结束时,会自动清理库数据。
public class SystemUserTests
{
[ClassDataSource<TestHttpClientData>(Shared = SharedType.PerTestSession)]
[Test]
public async Task GetUserInfo_ShouldReturnUserDetails(TestHttpClientData httpClientData)
{
var httpClient = httpClientData.HttpClient;
var response = await httpClient.GetAsync("/api/systemUser/userinfo");
await Assert.That(response.StatusCode).IsEqualTo(HttpStatusCode.OK);
var userInfo = await response.Content.ReadFromJsonAsync<UserInfoDto>();
await Assert.That(userInfo).IsNotNull();
await Assert.That(userInfo!.Username).IsNotNullOrEmpty();
}
}