Intellij에서 코드(파일) 템플릿 만들기

2024. 5. 1. 21:12유용한 끄적임


Background

 

한참 테스트 코드를 작성하다가 너무 빈번하게 발생되는 코드들을 느낄 수 있었네요.

특히 저는 정렬에 매우 민감한 편인데, ClassOrderer나 MethodOrderer는 어디든지 사용하고 있었습니다.

 

그러다 문득 든 생각은...

템플릿 없나?

 

 

뭐... 찾아보니 있었습니다 ㅎ

 

 

 

 

 

 

 


JUnit5 Test Class Template

 

저는 JUnit5에서 테스트하므로 해당 클래스 템플릿을 만드는 것을 예시로 놓겠습니다.

 

1. Intellij에서 설정(Settings) 들어가기

2. Editor > File And Code Template > Code 탭 > JUnit5 Test Class 누르기

  • 귀찮으면 검색창에 File And Code Template 작성하면 됩니다.

 

화면에서 볼 수 있듯, 비단 JUnit5 뿐 아니라 다른 것도 만들 수 있으니 참고하면 좋습니다.

 

이제 템플릿을 작성하는 칸에 코드를 써봅니다.

마음대로 작성하는 건 자유지만 코틀린에서 하나 유의할 점은,

JUnit5 템플릿을 작성할 때 자바 언어로 작성해야 된다는 점입니다.

import org.junit.jupiter.api.*;
import org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

@ExtendWith(MockitoExtension.class)
@TestClassOrder(ClassOrderer.OrderAnnotation.class)
class ${NAME} {

    @Nested
    @Order(10)
    @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
    public final class SampleTest {
    
        @Test
        @Order(10)
        public void given_when_then() {
        
        }
        
    }
    
    @BeforeEach
    public void setMocks() {
    
    }
    
}

 

 

이제 테스트 클래스를 생성해보면,

 

 

잘 생성되었네요!

import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.Mock
import org.mockito.junit.jupiter.MockitoExtension

@ExtendWith(MockitoExtension::class)
@TestClassOrder(ClassOrderer.OrderAnnotation::class)
class UserAndRoleRelationServiceImplTest {

    @Nested
    @Order(10)
    @TestMethodOrder(MethodOrderer.OrderAnnotation::class)
    inner class SampleTest {

        @Test
        @Order(10)
        fun given_when_then() {

        }

    }

    @BeforeEach
    fun setMocks() {

    }

}