Install
openclaw skills install springboot-unit-testing专业的Spring Boot + MyBatis + MySQL项目单元测试技能,提供全面的测试覆盖策略。 当用户需要为Spring Boot项目编写单元测试时使用此技能,特别是包含: - 完整的正常流程测试 - 充分的异常场景测试 - 全面的边界值测试 - MyBatis Mapper层测试 - Service层业务逻辑测试 - Controller层API测试 - 集成测试和端到端测试 适用于:JUnit 5、Mockito、AssertJ、Hamcrest、H2数据库、Testcontainers等技术栈。
openclaw skills install springboot-unit-testing本技能提供Spring Boot + MyBatis + MySQL项目的专业单元测试解决方案,确保:
查看 references/dependencies.md 获取完整的测试依赖配置。
@MybatisTest + H2内存数据库@ExtendWith(MockitoExtension.class) + Mock依赖@WebMvcTest + MockMvc@SpringBootTest + Testcontainers每个业务方法都需要以下测试:
每个可能抛出的异常都需要:
所有输入参数都需要边界测试:
// 查看完整模板: references/mapper-test-template.java
@MybatisTest
@AutoConfigureTestDatabase(replace = Replace.NONE)
@Sql("/test-data.sql")
class [Entity]MapperTest {
// CRUD操作测试
// 复杂查询测试
// 事务边界测试
// 性能边界测试
}
// 查看完整模板: references/service-test-template.java
@ExtendWith(MockitoExtension.class)
class [Entity]ServiceTest {
// 业务逻辑测试
// 异常处理测试
// 事务管理测试
// 并发安全测试
}
// 查看完整模板: references/controller-test-template.java
@WebMvcTest([Entity]Controller.class)
class [Entity]ControllerTest {
// HTTP方法测试
// 请求参数测试
// 响应格式测试
// 错误处理测试
}
// 查看完整模板: references/integration-test-template.java
@SpringBootTest
@AutoConfigureMockMvc
@Transactional
class [Feature]IntegrationTest {
// 端到端流程测试
// 数据一致性测试
// 性能基准测试
// 安全边界测试
}
@Sql 注解导入SQL文件查看 references/test-data-factory.java 获取测试数据工厂实现。
查看 references/test-data-examples.sql 获取测试SQL示例。
@Test
@Transactional(propagation = Propagation.NEVER)
void testTransactionRollback() {
// 测试事务回滚
}
@Test
void testTransactionPropagation() {
// 测试事务传播
}
@Test
void testConcurrentAccess() throws InterruptedException {
// 使用CountDownLatch或CompletableFuture测试并发
}
@Test
@Timeout(5) // 5秒超时
void testPerformanceBoundary() {
// 性能边界测试
}
@Test
void testSecurityConstraints() {
// 权限验证测试
// 数据隔离测试
}
assertEquals()、assertThrows()assertThat() 链式调用assertThat() + Matcherverify() 验证方法调用any(), eq(), argThat() 等when().thenThrow() 模拟异常# 生成覆盖率报告
mvn clean test jacoco:report
# 检查覆盖率阈值
mvn jacoco:check
test[场景]_[条件]_[期望结果][Entity][Layer]TestTestDataFactorytest-[feature].sql@Transactional 注解位置@MockBean 和 @Mock 的区别@Transactional 或清理方法logging.level.root=DEBUG@DirtiesContext 重置Spring上下文@TestPropertySource 覆盖配置MockMvc 的 andDo(print()) 打印请求详情// 创建组合注解简化测试配置
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@MybatisTest
@AutoConfigureTestDatabase
@Sql("/test-data.sql")
public @interface MybatisIntegrationTest {
}
@Tag 分组测试当用户请求"为我的Spring Boot项目编写单元测试"时:
本技能确保为每个Spring Boot项目提供专业、全面、可维护的单元测试解决方案。
此Skill已配置为可发布到ClawHub的技能市场。包含以下发布文件:
✅ 完整性检查
✅ 配置检查
✅ 质量检查
创建GitHub仓库(推荐)
git init
git add .
git commit -m "feat: Spring Boot单元测试Skill v1.0.0"
git remote add origin https://github.com/your-repo/springboot-unit-testing.git
git push -u origin main
准备发布包
# 打包Skill
tar -czf springboot-unit-testing-skill-v1.0.0.tar.gz test-skill/
# 或使用zip
zip -r springboot-unit-testing-skill-v1.0.0.zip test-skill/
发布到ClawHub
维护和更新
让Spring Boot项目的单元测试更专业、更全面、更高效!