카테고리 없음

스프링부트 Junit 테스트 작성

백봉 2024. 6. 27. 17:34

Postman으로 항상 테스트를 하다가 경우의 수도 많고 힘들기도 하고 기록 찾기도 애매한데

요새 자꾸 로그인하라고 강요를 해서(비번생각매번안남)

 

Junit 테스트를 시작하게되었다. 

 

1. 빌드패스 에 test 폴더를 추가한다. 

2. 테스트 폴더 내에 테스트 클래스를 추가한다. 

3. (메이븐) 의존성을 추가한다. (적당히 필요한거위주로)

		<!--test part-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<!--<scope>test</scope>-->
		</dependency>
		<dependency>
		    <groupId>org.junit.jupiter</groupId>
		    <artifactId>junit-jupiter-api</artifactId>
		    <!--<scope>test</scope>-->
		</dependency>
		<dependency>
		    <groupId>org.junit.jupiter</groupId>
		    <artifactId>junit-jupiter-engine</artifactId>
		    <scope>test</scope>
		</dependency>
		 Mockito 
		<dependency>
		    <groupId>org.mockito</groupId>
		    <artifactId>mockito-core</artifactId>
		    <scope>test</scope>
		</dependency>
		<dependency>
	        <groupId>org.mockito</groupId>
	        <artifactId>mockito-junit-jupiter</artifactId>
	        <scope>test</scope>
	    </dependency>
		<!--test part-->

 

4. 테스트 클래스를 작성한다.

// SpringRunner, Parameterized, MockitoJUnitRunner, Suite
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("local")
// 테스트 클래스와 메인 어플리케이션 이름이 다른경우(대부분 다를듯?)
@ContextConfiguration(classes = Application.class)
// 로컬 db에 쓰더라도 테스트 후 전부 롤백
@Transactional
@Slf4j
public class ApiServiceTest {
	
	@Autowired
	private ApiServiceImpl apiService;

    private ModelMap modelMap;
    private HashMap<String, Object> paramMap;

    @BeforeEach
    public void setUp() {
        modelMap = new ModelMap();
        modelMap.put("AUTHORIZED", true);
        paramMap = new HashMap<>();
    }

    @Test
    public void testDoAlive() {
        HashMap<String, Object> result = apiService.doAlive(modelMap, paramMap);
        assertEquals(200, result.get("result_code"));
    }
}

 

5. (maven) update

 

6.실행