帮助你为 Spring Boot 项目实施测试驱动开发,覆盖新增、修复与重构场景
该技能材料显示其本质是面向 Spring Boot 的 TDD 提示/工作流文档,不要求密钥,也未声明任何远程端点。结合 prompt-only、开源及较高社区采用度,整体风险较低;仅需注意文档中提及的 Testcontainers/测试框架在实际落地时可能触发本地测试执行与依赖拉取。
材料明确标注无需密钥或环境变量,README 也未要求配置 API token、数据库口令或云凭证;未见直接的凭证收集、存储或滥用迹象。
系统检查项与材料均显示无声明的远程端点;该技能本身是提示/文档,不描述将用户数据发送到第三方服务。README 提到 Testcontainers、Maven 插件等,仅意味着在用户自行执行测试时可能发生常规依赖/镜像下载,不构成该技能自身的异常外发红旗。
当前审计对象为 prompt-only 技能,材料提供的是测试示例与工作流说明,并不包含可执行安装脚本、自动命令或本机进程控制逻辑。虽提及 JUnit、MockMvc、SpringBootTest、Testcontainers,但这是开发测试方法论说明,不等同于技能自身具备代码执行权限。
材料未声明对本地文件、数据库、系统目录或其他资源的直接读写权限请求;示例中的数据访问仅是 Spring Boot 测试代码范式说明,没有显示技能会主动读取或导出用户数据。
正面因素包括 GitHub 开源、可审计、社区采用度很高(约 210.5k stars),这些都明显降低风险。需留意之处是仓库链接与技能名称表面上不完全一致,许可证未声明且维护状态未知;另外 README 涉及 Maven/JaCoCo/Testcontainers 等第三方依赖,实际使用时仍应核验仓库对应关系与依赖来源。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "springboot-tdd" 技能: 1. 下载 https://raw.githubusercontent.com/affaan-m/ECC/main/skills/springboot-tdd/SKILL.md 2. 保存为 ~/.claude/skills/springboot-tdd/SKILL.md 3. 装好后重载技能,告诉我可以用了
请用 TDD 方式为 Spring Boot 新增一个用户注册接口:先写失败的 JUnit 5 与 MockMvc 测试,再实现最小可用代码,使用 Mockito 模拟依赖,并补充关键边界条件测试。
一套按 TDD 步骤组织的测试与实现代码示例,包含接口、服务及边界条件测试。
这里有一个 Spring Boot 缺陷:订单取消后库存没有回滚。请先编写能复现问题的失败测试,再给出修复代码,并说明如何用 Mockito 或 Testcontainers 验证修复没有引入副作用。
包含缺陷复现测试、修复实现和验证方案的回归测试开发方案。
我想重构 Spring Boot 的订单服务,拆分过大的业务方法。请基于现有逻辑设计单元测试、集成测试和 JaCoCo 覆盖率目标,确保重构前后行为一致。
一份面向重构的测试方案,含测试分层建议、覆盖率目标与示例代码结构。
TDD guidance for Spring Boot services with 80%+ coverage (unit + integration).
@ExtendWith(MockitoExtension.class)
class MarketServiceTest {
@Mock MarketRepository repo;
@InjectMocks MarketService service;
@Test
void createsMarket() {
CreateMarketRequest req = new CreateMarketRequest("name", "desc", Instant.now(), List.of("cat"));
when(repo.save(any())).thenAnswer(inv -> inv.getArgument(0));
Market result = service.create(req);
assertThat(result.name()).isEqualTo("name");
verify(repo).save(any());
}
}
Patterns:
@ParameterizedTest for variants@WebMvcTest(MarketController.class)
class MarketControllerTest {
@Autowired MockMvc mockMvc;
@MockBean MarketService marketService;
@Test
void returnsMarkets() throws Exception {
when(marketService.list(any())).thenReturn(Page.empty());
mockMvc.perform(get("/api/markets"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.content").isArray());
}
}
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")
class MarketIntegrationTest {
@Autowired MockMvc mockMvc;
@Test
void createsMarket() throws Exception {
mockMvc.perform(post("/api/markets")
.contentType(MediaType.APPLICATION_JSON)
.content("""
{"name":"Test","description":"Desc","endDate":"2030-01-01T00:00:00Z","categories":["general"]}
"""))
.andExpect(status().isCreated());
}
}
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@Import(TestContainersConfig.class)
class MarketRepositoryTest {
@Autowired MarketRepository repo;
@Test
void savesAndFinds() {
MarketEntity entity = new MarketEntity();
entity.setName("Test");
repo.save(entity);
Optional<MarketEntity> found = repo.findByName("Test");
assertThat(found).isPresent();
}
}
@DynamicPropertySource to inject JDBC URLs into Spring contextMaven snippet:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.14</version>
<executions>
<execution>
<goals><goal>prepare-agent</goal></goals>
</execution>
<execution>
<id>report</id>
<phase>verify</phase>
<goals><goal>report</goal></goals>
</execution>
</executions>
</plugin>
assertThat) for readabilityjsonPathassertThatThrownBy(...)class MarketBuilder {
private String name = "Test";
MarketBuilder withName(String name) { this.name = name; return this; }
Market build() { return new Market(null, name, MarketStatus.ACTIVE); }
}
mvn -T 4 test or mvn verify./gradlew test jacocoTestReportRemember: Keep tests fast, isolated, and deterministic. Test behavior, not implementation details.
为 iOS 项目快速搜索图标并生成可直接用于 Xcode 的 PNG 图标资源集。
在本地审查应用上线准备度,快速发现生产环境风险与薄弱环节。
为家庭实验室网络改造提供分段、DNS过滤与远程访问变更前检查清单
帮助用户智能挖掘高价值潜在客户并生成多渠道触达方案
端到端编排新功能开发流程,覆盖调研、规划、测试驱动实现、评审与提交把关。
帮助用户检索美国专利商标官方记录并整理可复现的知识产权研究流程。
为 Quarkus 3.x 项目提供测试驱动开发方案,支持功能开发、修复与重构。
用测试驱动开发流程编写新功能、修复缺陷并安全重构代码。
帮助开发者用 pytest-django 与 TDD 构建高质量 Django 测试体系。
为 Spring Boot 开发提供代码生成、安全审计与查询优化支持。
通过测试驱动开发流程,先写测试再实现功能或修复缺陷。
帮助开发者用先写测试再实现代码的方式提升质量与可维护性。