From cassiiopeia
Generates sample JUnit tests for Spring Boot classes or files, selecting suh-logger templates and handling multi-module projects via /suh-spring-test.
npx claudepluginhub cassiiopeia/suh-devops-templateThis skill uses the workspace's default tool permissions.
Spring Boot 프로젝트용 샘플 테스트 코드를 생성한다.
Generates JUnit 5 unit tests with Mockito and Testcontainers integration tests for Java services, repositories, controllers, and utilities. Auto-detects Maven/Gradle/Spring Boot setup from build files.
Provides Spring Boot 4 testing strategies: slice tests (@WebMvcTest, @DataJpaTest), integration tests, Testcontainers (@ServiceConnection), security (@WithMockUser, JWT), Modulith Scenario API, MockMvcTester, and @MockitoBean migration.
Guides TDD for Spring Boot with JUnit 5, Mockito, MockMvc, Testcontainers, JaCoCo. Covers unit, web, integration, persistence tests for features, bugs, refactors.
Share bugs, ideas, or general feedback.
Spring Boot 프로젝트용 샘플 테스트 코드를 생성한다.
references/common-rules.md의 절대 규칙 적용 (Git 커밋 금지)
/suh-spring-test # 현재 파일 기준
/suh-spring-test UserService # 특정 클래스
/suh-spring-test @파일경로 # 특정 파일
인자: $ARGUMENTS
build.gradle 또는 pom.xml에서 me.suhsaechan:suh-logger 의존성 확인settings.gradle의 include)testImplementation project(':상위모듈') 존재 여부@SpringBootApplication 클래스의 FQCN 확인대상 클래스와 동일한 패키지 구조로 src/test/java/ 하위에 생성
package {{PACKAGE}};
import static me.suhsaechan.suhlogger.util.SuhLogger.lineLog;
import static me.suhsaechan.suhlogger.util.SuhLogger.superLog;
import static me.suhsaechan.suhlogger.util.SuhLogger.timeLog;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
{{ADDITIONAL_IMPORTS}}
@SpringBootTest{{BOOT_CLASS}}
@ActiveProfiles("dev")
@Slf4j
class {{CLASS_NAME}}Test {
{{AUTOWIRED_FIELDS}}
@Test
public void mainTest() {
lineLog("테스트시작");
lineLog(null);
timeLog(this::{{TEST_METHOD_NAME}}_테스트);
lineLog(null);
lineLog("테스트종료");
}
public void {{TEST_METHOD_NAME}}_테스트() {
// TODO: 테스트 로직 작성
lineLog("테스트 실행중");
}
}
package {{PACKAGE}};
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
{{ADDITIONAL_IMPORTS}}
@SpringBootTest{{BOOT_CLASS}}
@ActiveProfiles("dev")
@Slf4j
class {{CLASS_NAME}}Test {
{{AUTOWIRED_FIELDS}}
@Test
public void mainTest() {
log.info("============ 테스트시작 ============");
{{TEST_METHOD_NAME}}_테스트();
log.info("============ 테스트종료 ============");
}
public void {{TEST_METHOD_NAME}}_테스트() {
// TODO: 테스트 로직 작성
log.info("테스트 실행중");
}
}
| 플레이스홀더 | 설명 | 예시 |
|---|---|---|
{{PACKAGE}} | 패키지 | com.example.service |
{{CLASS_NAME}} | 클래스명 | UserService |
{{TEST_METHOD_NAME}} | 메서드명 (소문자) | userService |
{{BOOT_CLASS}} | 멀티모듈 시 | (classes = MyApplication.class) |
{{ADDITIONAL_IMPORTS}} | 추가 import | import com.example.MyApplication; |
{{AUTOWIRED_FIELDS}} | 주입 필드 | @Autowired UserService userService; |
application-dev.yml이 src/test/resources/에 필요