name: backend-test-generator
description: Spring Boot 1�� `�tXX � L��@ �i L��| JUnit 5@ Mockito| ��X� �1X� ��. Controller, Service, Repository t�� \ L��| ��<\ �1Xp� �pt�i��.
allowed-tools: Read, Grep, Glob
Backend Test Generator (Spring Boot)
t ��@ Spring Boot 1�� T�| �X� JUnit 5@ Mockito| ��\ L�� T�| ��<\ �1i��.
�� �
L�� ��
- � L��: Controller, Service, Repository � t� L��
- �i L��: API ���x� �i L�� (@SpringBootTest)
�� ��
- ��l: Spring Boot 2.x/3.x
- L�� �l: JUnit 5, Mockito, MockMvc, TestRestTemplate
- L� �l: Maven, Gradle
- ��: Java, Kotlin
� \8�
1��: ���m � �
Git diff| �t �� |D Ux:
git diff HEAD
git status --short
�L (4<\ 1�� |D �� �X:
- Controller:
*Controller.java, src/main/java/**/controller/**
- Service:
*Service.java, *ServiceImpl.java, src/main/java/**/service/**
- Repository:
*Repository.java, src/main/java/**/repository/**
- Entity:
*Entity.java, src/main/java/**/entity/**, src/main/java/**/domain/**
2��: T� �
�� |D }� �L ��| E:
- �\ � T�
- �� T� ��Ș
- �\� REST ���x� (@GetMapping, @PostMapping �)
- �� D�Ȥ \�
- DTO Entity ���m
- Xt1 �� ���m
3��: L�� � �
| ��� 0| \ L�� \�D �:
Controller L��
- \�:
templates/controller-test.md 8�
- �l: MockMvc, @WebMvcTest
- ��: HTTP �� T�, Q� , �T
Service L��
- \�:
templates/service-test.md 8�
- �l: Mockito, @ExtendWith(MockitoExtension.class)
- ��: D�Ȥ \�, x ��, ���X
Repository L��
- \�:
templates/repository-test.md 8�
- �l: @DataJpaTest, TestEntityManager
- ��: CRUD ��, �@ ��
�i L��
- \�:
templates/integration-test.md 8�
- �l: @SpringBootTest, TestRestTemplate
- ��: � API \�
4��: L�� | �1/�pt�
L�� | X �Y
Spring Boot \ lp| 0�:
src/main/java/com/example/UserController.java � src/test/java/com/example/UserControllerTest.java
src/main/java/com/example/UserService.java � src/test/java/com/example/UserServiceTest.java
src/main/java/com/example/UserRepository.java � src/test/java/com/example/UserRepositoryTest.java
L�� t�� �� �Y
- � L��:
{ClassName}Test.java
- �i L��:
{ClassName}IntegrationTest.java
0t L�� |t �� ��
- |D }� � L�� T� E
- �� T�� ް L�� �pt�
- �\� 0�� \ L�� �
- Deprecated L�� p
- \� � Ux
5��: �� �� �1
�L �<\ ��| ��:
=
���m �� D�
=� � �� |:
- src/main/java/com/example/UserController.java (Controller)
- src/main/java/com/example/UserService.java (Service)
� L�� �1 ...
�1 D�:
- src/test/java/com/example/UserControllerTest.java (5 test cases)
testGetUser_Success
testGetUser_NotFound
testCreateUser_Success
testCreateUser_ValidationError
testDeleteUser_Success
- src/test/java/com/example/UserServiceTest.java (6 test cases)
testFindUserById_Success
testFindUserById_NotFound
testCreateUser_Success
testCreateUser_DuplicateEmail
testUpdateUser_Success
testDeleteUser_Success
=� L�� 䄬� �: 85%
L�� �� �l���
�1 �� L��� �L 0D �qt| i��:
�� 0
Controller L�� 0
Service L�� 0
Repository L�� 0
�� �
# �� � 8�
backend-test-generator
# �� ��
"UserController� \ L�� �1t"
"1�� ���m� \ L�� �1t"
"UserService L�� �pt�t"
�X�m
- Mock ��: � DB� x� API| 8�X� J�] Mock ��
- L�� ��: L��� Ž<\ � �t| h
- **
x �**: � L��� t� ��| h
- X� �� L��: � 䄬� �t D� �� ��
- Spring Context: �D�X� � �M��| \�X� JL
D Xt1
Maven (pom.xml)
<dependencies>
<!-- JUnit 5 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Mockito -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<!-- H2 Database for testing -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Gradle (build.gradle)
dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.mockito:mockito-core'
testRuntimeOnly 'com.h2database:h2'
}
8� ��
�8\ \�� � �L |�D 8�X8�:
templates/controller-test.md - Controller L�� \�
templates/service-test.md - Service L�� \�
templates/repository-test.md - Repository L�� \�
templates/integration-test.md - �i L�� \�
references/spring-boot-testing-guide.md - Spring Boot L�� t�
1---2name: backend-test-generator3description: Spring Boot 1�� `�tXX � L��@ �i L��| JUnit 5@ Mockito| ��X� �1X� ��. Controller, Service, Repository t�� \ L��| ��<\ �1Xp� �pt�i��.4---5
6---
7name: backend-test-generator
8description: Spring Boot 1�� `�tXX � L��@ �i L��| JUnit 5@ Mockito| ��X� �1X� ��. Controller, Service, Repository t�� \ L��| ��<\ �1Xp� �pt�i��.
9allowed-tools: Read, Grep, Glob
10---
11
12# Backend Test Generator (Spring Boot)
13
14t ��@ Spring Boot 1�� T�| �X� JUnit 5@ Mockito| ��\ L�� T�| ��<\ �1i��.
15
16## �� �
17
18### L�� ��
19
20- **� L��**: Controller, Service, Repository � t� L��
21- **�i L��**: API ���x� �i L�� (@SpringBootTest)
22
23### �� ��
24
25- **��l**: Spring Boot 2.x/3.x
26- **L�� �l**: JUnit 5, Mockito, MockMvc, TestRestTemplate
27- **L� �l**: Maven, Gradle
28- **��**: Java, Kotlin
29
30## � \8�
31
32### 1��: ���m � �
33
34Git diff| �t �� |D Ux:
35
36```bash
37git diff HEAD
38git status --short
39```
40
41�L (4<\ 1�� |D �� �X:
42
43- **Controller**: `*Controller.java`, `src/main/java/**/controller/**`
44- **Service**: `*Service.java`, `*ServiceImpl.java`, `src/main/java/**/service/**`
45- **Repository**: `*Repository.java`, `src/main/java/**/repository/**`
46- **Entity**: `*Entity.java`, `src/main/java/**/entity/**`, `src/main/java/**/domain/**`
47
48### 2��: T� �
49
50�� |D }� �L ��| E:
51
52- �\ � T�
53- �� T� ��Ș
54- �\� REST ���x� (@GetMapping, @PostMapping �)
55- �� D�Ȥ \�
56- DTO Entity ���m
57- Xt1 �� ���m
58
59### 3��: L�� � �
60
61| ��� 0| \ L�� \�D �:
62
63#### Controller L��
64
65- **\�**: `templates/controller-test.md` 8�
66- **�l**: MockMvc, @WebMvcTest
67- **��**: HTTP �� T�, Q� , �T
68
69#### Service L��
70
71- **\�**: `templates/service-test.md` 8�
72- **�l**: Mockito, @ExtendWith(MockitoExtension.class)
73- **��**: D�Ȥ \�, x ��, ���X
74
75#### Repository L��
76
77- **\�**: `templates/repository-test.md` 8�
78- **�l**: @DataJpaTest, TestEntityManager
79- **��**: CRUD ��, �@ ��
80
81#### �i L��
82
83- **\�**: `templates/integration-test.md` 8�
84- **�l**: @SpringBootTest, TestRestTemplate
85- **��**: � API \�
86
87### 4��: L�� | �1/�pt�
88
89#### L�� | X �Y
90
91Spring Boot \ lp| 0�:
92
93- `src/main/java/com/example/UserController.java` � `src/test/java/com/example/UserControllerTest.java`
94- `src/main/java/com/example/UserService.java` � `src/test/java/com/example/UserServiceTest.java`
95- `src/main/java/com/example/UserRepository.java` � `src/test/java/com/example/UserRepositoryTest.java`
96
97#### L�� t�� �� �Y
98
99- � L��: `{ClassName}Test.java`
100- �i L��: `{ClassName}IntegrationTest.java`
101
102#### 0t L�� |t �� ��
103
1041. |D }� � L�� T� E
1052. �� T�� ް L�� �pt�
1063. �\� 0�� \ L�� �
1074. Deprecated L�� p
1085. \� � Ux
109
110### 5��: �� �� �1
111
112�L �<\ ��| ��:
113
114```
115=
116 ���m �� D�
117
118=� � �� |:
119 - src/main/java/com/example/UserController.java (Controller)
120 - src/main/java/com/example/UserService.java (Service)
121
122� L�� �1 ...
123
124 �1 D�:
125 - src/test/java/com/example/UserControllerTest.java (5 test cases)
126 testGetUser_Success
127 testGetUser_NotFound
128 testCreateUser_Success
129 testCreateUser_ValidationError
130 testDeleteUser_Success
131
132 - src/test/java/com/example/UserServiceTest.java (6 test cases)
133 testFindUserById_Success
134 testFindUserById_NotFound
135 testCreateUser_Success
136 testCreateUser_DuplicateEmail
137 testUpdateUser_Success
138 testDeleteUser_Success
139
140=� L�� 䄬� �: 85%
141```
142
143## L�� �� �l���
144
145�1 �� L��� �L 0D �qt| i��:
146
147### �� 0
148
149- [ ] L�� T܅t �UX� $� (test{MethodName}\_{Scenario} (4)
150- [ ] Given-When-Then (4
151- [ ] L�� Žt� � XtX� JL
152- [ ] Mock/Stubt X� ��(
153- [ ] �� t�| ��
154
155### Controller L�� 0
156
157- [ ] MockMvc| ��X� HTTP �� L��
158- [ ] ��/Q� �,T ��
159- [ ] x x�� L�� (@ControllerAdvice)
160- [ ] x�/x L�� (Security � �)
161
162### Service L�� 0
163
164- [ ] D�Ȥ \� ��
165- [ ] Repository Xt1 Mocking
166- [ ] ���X ّ Ux
167- [ ] �@ x �� L��
168
169### Repository L�� 0
170
171- [ ] @DataJpaTest ��
172- [ ] CRUD �� ��
173- [ ] �@ �� T� L��
174- [ ] } pt ��
175
176## �� �
177
178```
179# �� � 8�
180backend-test-generator
181
182# �� ��
183"UserController� \ L�� �1t"
184"1�� ���m� \ L�� �1t"
185"UserService L�� �pt�t"
186```
187
188## �X�m
189
1901. **Mock ��**: � DB� x� API| 8�X� J�] Mock ��
1912. **L�� ��**: L��� Ž<\ � �t| h
1923. **`x �**: � L��� `t� ��| h
1934. **X� �� L��**: � 䄬� �t D� �� ��
1945. **Spring Context**: �D�X� � �M��| \�X� JL
195
196## D Xt1
197
198### Maven (pom.xml)
199
200```xml
201<dependencies>
202 <!-- JUnit 5 -->
203 <dependency>
204 <groupId>org.springframework.boot</groupId>
205 <artifactId>spring-boot-starter-test</artifactId>
206 <scope>test</scope>
207 </dependency>
208
209 <!-- Mockito -->
210 <dependency>
211 <groupId>org.mockito</groupId>
212 <artifactId>mockito-core</artifactId>
213 <scope>test</scope>
214 </dependency>
215
216 <!-- H2 Database for testing -->
217 <dependency>
218 <groupId>com.h2database</groupId>
219 <artifactId>h2</artifactId>
220 <scope>test</scope>
221 </dependency>
222</dependencies>
223```
224
225### Gradle (build.gradle)
226
227```groovy
228dependencies {
229 testImplementation 'org.springframework.boot:spring-boot-starter-test'
230 testImplementation 'org.mockito:mockito-core'
231 testRuntimeOnly 'com.h2database:h2'
232}
233```
234
235## 8� ��
236
237�8\ \�� � �L |�D 8�X8�:
238
239- `templates/controller-test.md` - Controller L�� \�
240- `templates/service-test.md` - Service L�� \�
241- `templates/repository-test.md` - Repository L�� \�
242- `templates/integration-test.md` - �i L�� \�
243- `references/spring-boot-testing-guide.md` - Spring Boot L�� t�