IntelliJ를 이용한 Live Template 생성하기 (부제 : TDD 진행하기)
인프런 강의를 듣다가,
라이브 템플릿을 이용하여 누구보다 빠르게 TDD 기본 구조를 만드는 것을 보고 활용하기 위해 기록.
JUnit5에 대해서 지원되어지며, 그 외 버전에 대해서 확인 하지 못했습니다.
1. 템플릿 생성하기
인텔리제이 설정으로 진입합니다. ("Ctrl + Alt + S "를 이용해 바로 진입 할 수 있습니다. )
설정 창이 열리게 되면, 상단 검색바에 "Live Templates" 를 기입합니다. (혹은 Editor > Live Templates를 통해 진입합니다)
Java에 대한 템플릿 제작을 하기에, 해당 언어를 선택합니다.
이후, 우측에 있는 "+" 버튼을 통해 라이브 템플릿 생성할 준비를 마칩니다.
"+" 버튼을 누르게 되면, 2가지 옵션이 나오는데, 그중 "Live Template"을 선택합니다.
선택하면, 신규의 템플릿이 나타나게 되면, 템플릿을 생성하고, 설정할 준비가 되었습니다.
2. 템플릿 설정하기
1번을 통해 "신규 템플릿" 생성이 완료가 되었다라면,
해당 템플릿 명과 설명을 기입합니다.
* Abbreviation : {인텔리제이에서 호출할 템플릿 명령어 명}
* Description : {템플릿 설명 }
항목에 대해서 기입을 다 했다라면, Define을 클릭합니다.
"Java"내의 "Declaration"을 선택합니다.
이후 "Define" 영역이 "Change"로 바뀐것을 확인 할 수 있습니다.
"Template Text"에 대해서 기입합니다.
* "@" : 어노테이션이 사용 될 수 있게 선언합니다.
* "$TEST_NAME$" : 테스트 진행시, 노출되면 명에 대해서 기입 할 수 있게 표현합니다.
* "$METHOD_NAME$" : 테스트 진행시, 테스트 함수 명에 대해서 표현합니다.
* "$END$ : 템플릿 생성 후 커서가 실행되는 위치입니다.
@org.junit.jupiter.api.Test
@org.junit.jupiter.api.DisplayName("$TEST_NAME$")
void $METHOD_NAME$() throws Exception {
//given
$END$
//when
//then
}
"텍스트" 기입 완료시, 변수가 설정이 되어지기에, "Edit Variables"가 활성화 되어집니다.
해당 버튼을 통하여 진입시, 설정 한 변수들에 대한 기본값 설정에 대하여 진행할 수 있습니다.
각 변수마다의 설정을 진행할 수 있으며,
*Express : 변수가 노출될때 어떤 형태로 표현되는지 SelectBox를 통해 설정 할 수 있습니다.
*Default value : 템플릿 생성시, 변수에 대하여 노출되는 값을 줄 수 있으며, 값을 줄때에는 "쌍따옴표"안에 값을 넣어야 적용이 되어집니다. Ex. "테스트" (O) 테스트 (X)
*Skip if defined : 만약 Default value가 선언 되어있고, 해당 값에 대해서 체크가 되어있다라면, 템플릿 생성시 해당 변수에 대해서는 설정된 값으로 진행되며 따로 변수 재설정없이 진행 할 수 있습니다.
만약 항시 동일한 값에 대해서 진행하는 변수가 있다라면 유용하게 사용 할 수 있을 것 같습니다.
모든 항목에 대해서 진행 완료시, "OK"를 통해 설정을 완료합니다.
3. 템플릿 사용하기
인텔리제이 에디터 내에서 위에서 선언한 "Abbreviation"에 대해서 작성하면,
템플릿을 생성할 명령어가 노출되어집니다.
저는 "TDD"로 기입했으니 TDD를 작성합니다. (참고로 대소문자 구분이 되어집니다.)
생성한 라이브 템플릿의 명령아가 보이는 경우, 선택하여 실행시 "text"에 선언된대로 노출됨을 확인 할 수 있습니다.
2번에서 변수 설정에 대해서 "테스트노출명"에 대해서는 skip으로 설정했기에, 네모 박스 없이 바로 설정이 끝난것을 확인 할 수 있습니다.
다만, "테스트명"에 대해서는 skip에 대한 비활성화에 대해서 설정하지 않았기 설정하고 넘어가라는 네모 박스가 표시 됩니다.
모든 설정이 끝나고 엔터를 누른다라면 "given" 하단에 포인트 커서가 잡히게 됩니다.
코드 작성보다 TDD 작성이 더 어려워 .ㅠㅠ