你是一名跨平台测试架构师,当前需为.NET 8 + xUnit + Moq、Java 17 + JUnit 5 + Mockito 4、Python 3.11 + pytest 8.2 + unittest.mock三套环境分别生成可直跑的单元测试提示词。每套提示词独立成段,段首标注【平台标识】;禁止复用任何语法关键词——例如.NET版禁用@Test、Java版禁用[Fact]、Python版禁用[Theory]。.NET版必须包含dotnet test --filter ‘TestCategory=Unit’参数说明;Java版必须声明mvn clean test -Dtest=UserServiceTest#testValidInput;Python版必须写出pip install -e . && pytest tests/ -v --tb=short命令链。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要为.NET、Java、Python三类技术栈分别生成适配其生态的单元测试提示词,但ChatGPT默认输出常套用同一套模板——比如全用JUnit语法写Java,却忽略TestNG或Mockito版本差异;写Python时硬套pytest.fixture却不声明scope;.NET场景下直接扔出xUnit代码却未指定dotnet test CLI参数约束。这会导致生成的测试代码在真实CI环境中报错或无法运行。
按平台锁定语言+框架组合
第一步:打开ChatGPT对话框,在首句明确声明三重绑定关系:“你是一名跨平台测试架构师,当前需为.NET 8 + xUnit + Moq、Java 17 + JUnit 5 + Mockito 4、Python 3.11 + pytest 8.2 + unittest.mock三套环境分别生成可直跑的单元测试提示词。”【必须写全版本号,缺一不可】
第二步:立刻追加硬性隔离指令:“每套提示词独立成段,段首标注【平台标识】;禁止复用任何语法关键词——例如.NET版禁用@Test、Java版禁用[Fact]、Python版禁用[Theory]。”
第三步:对每套环境注入不可绕过的执行上下文:“.NET版必须包含dotnet test --filter ‘TestCategory=Unit’参数说明;Java版必须声明mvn clean test -Dtest=UserServiceTest#testValidInput;Python版必须写出pip install -e . && pytest tests/ -v --tb=short命令链。”
方法一:角色注入法(精准激活语料库)
方法一:在每轮提问末尾追加一句具体身份指令。例如:
→ 对.NET环境:“你现在是微软MVP认证的.NET测试专家,刚完成Azure DevOps Pipeline迁移项目,所有提示词必须兼容.NET SDK 8.0.300。”
→ 对Java环境:“你现在是Apache Commons团队资深贡献者,日常用IntelliJ IDEA 2024.1调试JUnit 5.10源码,提示词中所有注解必须匹配junit-jupiter-api 5.10.0。”
→ 对Python环境:“你现在是pytest官方文档维护者,上个月刚提交PR修复mock.patch装饰器在async函数中的作用域bug,提示词必须声明@patch(‘aiohttp.ClientSession.get’)且注明Python 3.11.9兼容性。”
用于在用户想通过浏览器自动化与 Google Gemini 或 ChatGPT 交互时。触发短语包括“ask Gemini”“ask ChatGPT”“ask GPT”“让...”。
方法二:模板变量替换法(避免每次重写)
准备通用模板:“请以【{平台}】环境为基准,生成一条可复制粘贴的单元测试提示词:涉及【{被测对象}】,要求覆盖【{边界类型}】,使用【{断言方式}】,输出格式为【{交付物}】。”
填入.NET参数:{平台}=“.NET 8 + xUnit + Moq”,{被测对象}=“ASP.NET Core Minimal API中的ProductService.CreateAsync()”,{边界类型}=“空名称、超长SKU、并发重复提交”,{断言方式}=“Assert.Equal + Assert.ThrowsAsync”,{交付物}=“完整C#类文件,含using声明和namespace包裹”。
填入Java参数:{平台}=“Java 17 + JUnit 5 + Mockito 4”,{被测对象}=“Spring Boot 3.2 Service层OrderProcessor.process()”,{边界类型}=“null order、payment timeout、inventory race condition”,{断言方式}=“Assertions.assertEquals + assertThrows”,{交付物}=“单个Java文件,含@SpringBootTest注解和@MockBean声明”。
填入Python参数:{平台}=“Python 3.11 + pytest 8.2 + unittest.mock”,{被测对象}=“FastAPI路由函数get_user_by_id()”,{边界类型}=“非整数ID、数据库返回None、缓存击穿”,{断言方式}=“assert == + pytest.raises”,{交付物}=“test_get_user.py文件,含@pytest.mark.asyncio和@patch(‘app.db.fetch_one’)”。
方法三:反向验证指令法(强制模型进入实操推演)
第一步:先让ChatGPT生成一套.NET提示词,然后输入新指令:“请将该提示词逐行对照以下三项验证:① 是否出现Assert.Throws
第二步:对Java版执行同样动作:“检查是否误用@BeforeEach而非@Nested类结构;是否漏掉MockitoExtension.class注册;是否未标注@Timeout(value = 5, unit = TimeUnit.SECONDS)防止CI超时。”
第三步:对Python版执行:“验证是否混用unittest.TestCase与pytest.fixture;是否未声明autouse=True的mock patch;是否缺少--cov=app --cov-report=xml参数说明。”

















