자기개발/검색한 자료 정리

Java에서 JUnit과 Mockito를 활용한 단위 테스트 작성 방법

실버블렛 2023. 4. 21. 11:30
반응형

 

요약: 이 글에서는 Java 프로젝트에서 JUnit과 Mockito를 사용하여 단위 테스트를 작성하는 방법을 소개합니다. 안정적인 코드를 작성하기 위한 테스트 작성 방법을 배워봅시다.

JUnit 소개

JUnit은 Java에서 가장 널리 사용되는 단위 테스트 프레임워크입니다. JUnit을 사용하면 프로젝트의 각 기능을 독립적으로 테스트할 수 있어 코드의 안정성을 높일 수 있습니다.

JUnit의 기본 사용법

JUnit을 사용하려면 먼저 프로젝트에 의존성을 추가해야 합니다. Maven 프로젝트에서는 pom.xml에 아래와 같이 의존성을 추가합니다.

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-engine</artifactId>
  <version>5.8.1</version>
  <scope>test</scope>
</dependency>


이제 JUnit을 사용하여 간단한 테스트 케이스를 작성해봅시다.

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class CalculatorTest {

  @Test
  public void testAddition() {
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 3);
    assertEquals(5, result);
  }
}


위의 예제에서는 @Test 애너테이션을 사용하여 테스트 메소드를 정의합니다. assertEquals 메소드는 두 인자의 값이 같은지 확인하여 테스트가 성공한 것인지 판단합니다.

Mockito 소개

Mockito는 Java에서 가장 인기 있는 mocking 라이브러리입니다. Mockito를 사용하면 테스트에서 실제 객체 대신 가짜 객체를 사용할 수 있어 테스트의 독립성을 높일 수 있습니다.

Mockito의 기본 사용법

Mockito를 사용하려면 먼저 프로젝트에 의존성을 추가해야 합니다. Maven 프로젝트에서는 pom.xml에 아래와 같이 의존성을 추가합니다.

<dependency>
  <groupId>org.mockito</groupId>
  <artifactId>mockito-core</artifactId>
  <version>4.2.0</version>
  <scope>test</scope>
</dependency>


이제 Mockito를 사용하여 간단한 테스트 케이스를 작성해봅시다.

import org.junit.jupiter.api.Test;
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class UserServiceTest {

  @Test
  public void testFindUser() {
    UserRepository userRepository = mock(UserRepository.class);
    UserService userService = new UserService(userRepository);

    User user = new User("John", "Doe");
    when(userRepository.findById(1L)).thenReturn(user);

    User result = userService.findUser(1L);
    assertEquals(user, result);

    verify(userRepository, times(1)).findById(1L);
  }
}


위의 예제에서는 mock 함수를 사용하여 UserRepository 인터페이스의 가짜 구현체를 생성합니다. 그런 다음 when과 thenReturn을 사용하여 가짜 객체의 동작을 정의합니다.

이제 UserService의 findUser 메소드를 호출하면 가짜 UserRepository 객체가 제공하는 데이터를 사용합니다. 테스트의 마지막 부분에서는 verify 함수를 사용하여 findById 메소드가 한 번 호출되었는지 확인합니다.

정리

이 글에서는 Java 프로젝트에서 JUnit과 Mockito를 사용하여 단위 테스트를 작성하는 방법을 소개했습니다. JUnit은 Java에서 가장 인기 있는 단위 테스트 프레임워크이며, Mockito는 테스트의 독립성을 높이기 위해 사용하는 mocking 라이브러리입니다. JUnit과 Mockito를 활용하여 프로젝트의 안정성을 높일 수 있습니다.

반응형