본문 바로가기
프로그래밍/Java

[Java] Junit5를 이용한 테스트 코드 작성

by 시간많은백수 2023. 10. 23.
반응형

💡Junit이란

JUnit은 자바 프로그래밍 언어를 위한 오픈 소스 테스팅 프레임워크입니다. 특히, JUnit은 유닛 테스트(Unit Testing)를 수행하는 데 사용되며, 자바 언어로 작성된 소프트웨어의 품질과 안정성을 검증하는 데 도움을 줍니다. JUnit은 소프트웨어 개발자들이 코드를 작성하고 변경할 때 시스템이 여전히 예상대로 작동하는지 확인할 수 있는 강력한 도구로 널리 사용됩니다.

 

💡Eclipse에서 Junit 의존성 추가 

  • 방법 1 
    1. 프로젝트를 선택하고 우클릭 후 Properties를 선택해주세요.
    2. Java Build Path를 선택하고 Libraries 탭에서 Add Library을 선택해주세요.
    3. JUnit을 선택하고, Next를 클릭해주세요.
    4. JUnit의 버전 선택 후 Finish 버튼을 클릭해 주세요.
    5.  Properties 창에 JUnit 라이브러리가 추가된 것을 확인할 수 있습니다.
      Eclipse에 JUnit이 설정되었습니다

JUnit 라이브러리의 최신 버전을 확인하기 위해 메이븐 사이트에 접속합니다.

 

          2. JUnit 검색하고 2. JUnit 을 클릭합니다.

 

          3. 원하는 버전을 선택 후 클릭하면 Maven에 추가할 수 있는 코드를 확인 할 수 있습니다.

 

          4. 다음과 같이 pom.xml에 추가합니다.

		<!-- Spring-test -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
        
		<!-- https://mvnrepository.com/artifact/junit/junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13</version>
			<scope>test</scope>
		</dependency>        

 

 

          5. 다음과 같이 pom.xml에 추가합니다.

 

💡JUnit 사용방법

    1. 패키지를 선택한 후 New> other 클릭해주세요.
    2. 검색창에 JUnit을 작성하면 아래의 그림처럼 2개 목록이 뜹니다. JUnit Test Case를 선택해주세요.
    3. Name을 작성한 후 Browse를 클릭해주세요.

    4. 테스트할 클래스를 선택 후 OK 버튼을 클릭해 주세요.
    5. 클래스 내에 있는 메서드 목록이 나옵니다. 테스트 코드를 작성할 메서드를 선택 후 Finish 버튼을 클릭해 주세요.
    6. UserServiceTest.java 파일이 생성되었습니다.
    7. 테스트 코드작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@RunWith(MockitoJUnitRunner.class)
public class UserServiceTest {
    
    @InjectMocks
    private UserService userService;
 
    @Mock
    private UserMapperInter usermapperInter;
 
    @BeforeEach
    public void setUp() {
        MockitoAnnotations.openMocks(this); // Mockito 초기화 및 Mock 객체 생성
    }
 
    @Test
    public void testUpdateCover() {
        // 테스트할 데이터
        String user_num = "123";
        String user_cover = "test_cover.jpg";
 
        // given: Mock 객체의 동작 설정 및 예상되는 파라미터를 설정
        Map<StringString> expectedParams = new HashMap<>();
        expectedParams.put("user_num", user_num);
        expectedParams.put("user_cover", user_cover);
 
        // when: Mock 객체의 메서드 호출 설정 (for void methods, use doNothing)
        doNothing().when(usermapperInter).updateCover(expectedParams);
 
        // when: 테스트 대상 메서드 호출
        userService.updateCover(user_num, user_cover);
 
        // then: 결과 검증
        verify(usermapperInter).updateCover(expectedParams); // updateCover 메소드가 호출되었는지 확인
    }
}
 
cs

Mockito 라이브러리를 통해 가짜 객체(Mock)을 생성한 뒤 updateCover 메서드가 정상적으로 호출되는지 테스트 하는 코드입니다.

@BeforeEach 애너테이션은 각 테스트 메소드가 실행되기 전에 초기화 코드를 실행하는 데 사용됩니다.

 

     8.테스트 클래스 실행하는 방법은 프로젝트에서 마우스 우클릭을 클릭합니다.

 

     9.테스트 결과

       실패 시

반응형