web/Junit

Junit 정리 - 서비스 테스트 하기

반응형

전장에서 컨트롤러 테스트 방법을 공부하였다.
이번에는 서비스를 가지고 테스트 하는 방법을 설명한다. 


Assert 시리즈로 검증하기
- Assert 시리즈를 활용하면 해당 메소드의 결과값이 true인지 검증 뿐만 아니라 null 인지 등도 테스트를 진행할 수 있다.

 Assert로 설정한 대로 동작하지 않으면 테스트 도중 실패로 끝나기 때문에, 잘못된 결과 값이 나온다는 것을 확인하고 코드를 수정할 수 있다.

Assert 관련 메서드 종류는 다음과 같다.



Assert 메서드 종류
설명
assertArrayEquals(a, b)
배열 a와 b가 일치함을 확인한다.
assertEquals(a, b)
객체 a와 b가 일치함을 확인한다. (객체에 정의되어 있는 equals를 통해 비교한다.)
assertSame(a, b)
객체 a와 b 가 같은 객체임을 확인 한다. (객체 자체를 비교한다. == )
assertTrue(a)
조건 a가 참인지를 확인한다.
assertNotNull(a)
객체 a가 null인지 확인한다.



예제코드


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
36
37
38
39
40
41
42
package com.wedul.wedulpos.user.test;
 
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
import com.wedul.wedulpos.user.dto.UserDto;
import com.wedul.wedulpos.user.service.UserService;
 
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"test-confing.xml"})
public class UserControllerTest {
    
    @Autowired
    UserService userService;
    
    UserDto dto;
    
    @Before
    public void setUp() throws Exception {
        dto = new UserDto();
        dto.setId("test");
    }
    
    @Test
    public void testUserController() throws Exception {
        assertTrue(userService.login(dto));
        assertFalse(!userService.login(dto));
        assertNull(userService.findPassword(dto));
    }
 
}
cs




기존에는 이런 방식으로 많이 테스트를 진행하였지만 요근래에는 mockito에서 제공하는 방식을 이용하여 테스트를 많이 진행한다고 한다.

이는 다다음장에서 공부해보자.




반응형