Spring

[Spring] Gradle, JUnit, 테스트 코드

박졔삐 2024. 9. 26. 12:49



[Gradle] - 자바 기반의 빌드 도구

 

Gradle의 주요 특징 

 

1. 유연한 빌드 시스템: Gradle은 Groovy 또는 Kotlin DSL을 사용하여 빌드 스크립트를 작성할 수 있어,
코드의 가독성과 유지 보수성을 높인다.


2. 의존성 관리: Gradle은 Maven Central, JCenter 등의 리포지토리에서 라이브러리를 쉽게 가져올 수 있도록 지원한다.
이를 통해 프로젝트의 의존성을 간편하게 관리할 수 있다.


3. 다양한 작업 수행: Gradle은 컴파일, 테스트, 패키징, 배포 등 다양한 작업을 자동화할 수 있으며,
사용자가 원하는 대로 작업을 정의하고 실행할 수 있다.


4. Inceremental Build: Gradle은 변경된 파일만 다시 빌드하여 빌드 시간을 단축시킬 수 있는 기능을 제공한다.


5. 플러그인 생태계: Gradle은 다양한 플러그인을 통해 기능을 확장할 수 있으며, 스프링 부트 프로젝트의 경우
''spring-boot-gradle-plugin''을 사용하여 스프링 부트 애플리케이션의 빌드 및 실행을 간편하게 처리할 수 있다.



[JUnit]


- 개발에서의 버그를 최대한 많이 찾아내기 위해서
테스트 코드를 작성해야 하는데
스프링에서는 테스트 코드를 작성할 수 있는 환경을 제공해 준다.
그 환경을 J-unit이라 한다. 자바프로그래밍 언어용 간이 테스트 프레임 워크.

 


단위 테스트: 개별 클래스나 메서드의 동작을 검증하는 테스트


-어노테이션: JUnit은 다양한 어노테이션(@Test, @Before, @After 등)을 통해
테스트 메서드의 실행 순서를 정의한다.

JUnit 어노테이션
@Test: 해당 메서드가 테스트 메서드임을 나타낸다.
@Autowired: 테스트 클래스에 스프링 빈을 주입한다.
@MockBean: Mockito와 함께 사용하여 테스트할 빈의 Mock 객체를 생성할 수 있다.
@Before / @After: 각각 테스트 실행 전후에 수행할 메서드를 정의한다.

 


[테스트 작성 예시]

 

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {AppConfig.class})
public class MyServiceTest {

    @Autowired
    private MyService myService;

    @Before
    public void setUp() {
        // 테스트 실행 전 수행할 초기화 작업
    }

    @After
    public void tearDown() {
        // 테스트 실행 후 수행할 정리 작업
    }

    @Test
    public void testMyServiceMethod() {
        // Arrange
        // 필요한 데이터 설정

        // Act
        String result = myService.myMethod();

        // Assert
        assertEquals("기대하는 결과", result);
    }
}



스프링 테스트 컨텍스트 @RunWith(SpringJUnit4ClassRunner.class) 어노테이션을 사용하여

스프링 컨텍스트와 JUnit을 통합할 수 있다.


의존성 주입: 스프링의 의존성 주입 기능을 테스트에서 활용하여 실제 빈을 테스트할 수 있다.


@ContextConfiguration: 테스트할 스프링 설정 파일이나 클래스를 지정하는 데 사용된다.

 


[테스트 코드는 Main이 없다.]


JUnit은 테스트 실행 환경을 따로 가지고 있다.
그래서 Main 메서드를 실행하거나 서버를 따로 실행 시키지 않아도
각각의 메서드 혹은 기능 별로 테스트 코드를 작성해서 시킬 수 있다.

 

 

테스트 코드 만들기

1. 클래스 마우스 우측 클릭 후 -> Generate 클릭

 

2. Generate에서 Test 클릭

 

만들고 나면 테스트란에서 카큘레이터 파일의 경로까지 복사해온 것을 알 수 있다.

 

 

경로가 맞지 않아도 동작하지 않거나 하는 것은 아니지만, 본래의 경로와 맞춰 주는 것이 좋다.

728x90
반응형