# Backend Test Generator

> Spring Boot 1�� `�tXX � L��@ �i L��| JUnit 5@ Mockito| ��X� �1X� ��. Controller, Service, Repository t�� \ L��| ��<\ �1Xp� �pt�i��.

- Skill: `majiayu000/backend-test-generator` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/backend-test-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/backend-test-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/backend-test-generator

---


---
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:

```bash
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 �� ��

1.  |D }� � L�� T� E
2.  �� T�� ް L�� �pt�
3.  �\� 0�� \ L�� �
4.  Deprecated L�� p
5.  \� �  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

- [ ] L�� T܅t �UX� $� (test{MethodName}\_{Scenario} (4)
- [ ] Given-When-Then (4 
- [ ] L�� Žt� � XtX� JL
- [ ] Mock/Stubt X� ��(
- [ ] �� t�| ��

### Controller L�� 0

- [ ] MockMvc| ��X� HTTP �� L��
- [ ] ��/Q� �,T ��
- [ ] x x�� L�� (@ControllerAdvice)
- [ ] x�/x L�� (Security � �)

### Service L�� 0

- [ ] D�Ȥ \� ��
- [ ] Repository Xt1 Mocking
- [ ] ���X ّ Ux
- [ ] �@ x �� L��

### Repository L�� 0

- [ ] @DataJpaTest ��
- [ ] CRUD �� ��
- [ ] �@ �� T� L��
- [ ] } pt ��

## �� �

```
# �� � 8�
backend-test-generator

# �� ��
"UserController� \ L�� �1t"
"1�� ���m� \ L�� �1t"
"UserService L�� �pt�t"
```

## �X�m

1. **Mock ��**: � DB� x� API| 8�X� J�] Mock ��
2. **L�� ��**:  L��� Ž<\ � �t| h
3. **`x �**: � L��� `t� ��| h
4. **X� �� L��**: � 䄬� �t D� �� ��
5. **Spring Context**: �D�X� � �M��| \�X� JL

## D Xt1

### Maven (pom.xml)

```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)

```groovy
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�

