본문 바로가기
개발 이야기

이 단축키만 알면? 나도 Test code 마스터! (with. IntelliJ)

by 황인태(intaehwang) 2025. 3. 16.
반응형

 

들어가며

개발자라면 누구나 효율적이고 빠른 방법을 좋아합니다.

그래야 야근을 안할 수 있기 때문.. (정시 퇴근 드리븐 개발).

TDD를 하면 초반에는 시간이 더 걸려도, 나중에는 유지보수가 쉬워져서 효율적이라고 합니다.

Image

그런데 실제로 해보면... 책도 읽고, 강의도 들어봤는데… “아, 테스트 코드 작성하는 것부터 귀찮다…”

이런 생각이 들기 마련이죠.

그리고, 도대체 언제쯤 효과를 보는 거지? 의심이 들기도 합니다.

Tmi

필자는 예전에 관리자에게 "테스트 코드 작성은 우리와 맞지 않습니다."라는 말을 들은 적이 있어요.
(정작 그 프로젝트에서는 테스트 코드를 한 번도 작성해본 적이 없었는데… 😅)

 

어떻게 하면 귀찮음과 의심을 해결할 수 있을까요?

어쩌면 단축키를 몰라서 아닐까요?

 


command + Shift + T

TDD를 처음 접한 개발자들은 이런 생각을 할 수도 있어요.

  • "아 테스트 코드를 만들려면 또 class를 만들어야 하네.."
  • "아 dir 몇 depth야.. 귀찮네"
  • 개발할게 저렇게 많은데 언제 다하지?
  • 역시 테스트 코드는 시간만 많이 걸리는거야!

 

이럴 때! command + Shift + T (Mac) / Alt + Shift + T (Windows)를 눌러보세요.

✨ 짜잔! 자동으로 테스트 클래스가 생성됩니다!

imgimg
Note

중간 과정은 생략했습니다. 그냥 무지성 엔터 누르셔도 됩니다.

 


Live templates

@Test  
@DisplayName("")  
public void test() {  
    // given  
	
	// when
	
	// then  
}

아 이거 언제 치고 있냐... 다른 거 복사해서 지우는 것도 일이고..
테스트 코드 자동 완성이 있었으면 좋겠다…

혹시 테스트 코드 자동 완성이 있었으면 좋겠다고 생각하신 적 없나요?

있습니다. 🙌

Image

 

저는 자동완성 없는데요?

 

Live templates라는 기능이 있습니다.

Setting에 들어가서 Live templates를 검색하면 이런 게 나오는데 저는 test, testc 이렇게 두 개 추가해서 사용하고 있습니다.

Image
// 이거 복붙해서 추가하세요~
@Test  
@DisplayName("$displayName$")  
public void $testName$() {  
    // given  
    $END$  
    // when  
	// then  
}

 

 

Note

 

testc는 throws Exception 만 추가하면 됩니다. controller test 할 때 매우 편리합니다!

Image
 

IntegrationTestSupport

img

“아… 통합 테스트 실행하는데 Spring이 올라가는 시간이 너무 오래 걸리네…”

“어? 테스트 실행할 때마다 Spring을 새로 올린다고?”

“시간 낭비가 너무 심한데…?! 😨”

 

어떻게 하면 Spring을 최소한으로 올리지?

 

@SpringBootTest가 붙은 test는 매번 spring을 새로 올리게 합니다.

그렇기 때문에 당연히 Spring context가 여러 번 올라가게 되는데요.

해결방법은 상위 클래스를 생성하여 extends를 하면 됩니다.

@SpringBootTest
@ActiveProfiles("test")
public abstract class IntegrationTestSupport {
	// ...
}

class StockRepositoryTest extends IntegrationTestSupport { 
	// ... 
}

 

이렇게 하면 테스트를 실행할 때마다 Spring context가 새로 생성되지 않아 시간을 크게 절약할 수 있습니다.

img
주의

@MockBean을 사용하여 테스트를 진행할 경우 Spring이 새로 올라가게 됩니다.
이럴 경우 Spring 한번 더 올라가는 것쯤이야! 하고 넘어가시는 게 마음 편합니다!

Mock에 관련된 내용은 다소 길어질 수 있으니

Image

 


Ctrl + Shift + T

테스트는 수시로 일어나게 됩니다.

예를들어

  1. 새로운 기능이 추가되었을 때
  2. 기존 기능이 수정되었을 때
  3. 코드를 pull 받아서 최신 상태로 만들었을 때

가 있을 수 있습니다.

대부분의 개발자는 Ctrl + Shift + R (Mac) / Shift + F10 (Windows)로 개별 테스트를 실행하는 방법은 알고 있어요.

그런데 모든 테스트를 실행하려고 할 때, 마우스를 잡고 클릭해 본 경험이 있지 않나요? 🤔

Image

이럴 때! Ctrl + Shift + T를 눌러보세요.

그러면 전체 테스트가 실행됩니다! 🎯

Image

 

어... 근데 제 IntelliJ는 안 되는데요?

 

당연하죠!
단축키 등록을 안했기 때문입니다! 한 번 등록해보면 아주 편리해집니다. 😆
 
  1. Gradle에서 verification를 들어가서 test를 우클릭하고 Assign Shortcut... 클릭합니다.
    img
  2. test에서 우클릭 하고 Add Keyboard Shortcut을 클릭합니다.
    img
  3. 이제 단축키를 입력해야하는데 이때 단축키를 하나씩 누르는게 아니고 진짜 단축키를 사용하는것 처럼 누르고 있어야 합니다!
    Image
Image

테스트 코드, 결국엔 습관이다

1. 실제로 테스트 코드를 작성하면 초반에는 귀찮을 수 있지만, 버그를 빨리 발견할 수 있습니다.

코드의 신뢰성도 높아지고, 전체적인 유지보수 비용을 크게 절감할 수 있죠.

무엇보다 마음 편히 코드를 수정할 수 있다는 점이 가장 큰 매력입니다.

 

2. 테스트를 작성하는 가장 쉬운 방법은 “일단 해보는 것”입니다.

초기에는 귀찮을 수 있지만, 습관처럼 단축키를 사용하다 보면
어느 순간 몸이 기억하고 있는 자신을 발견하게 될 거예요.

그리고 이런 생각이 들 수도 있습니다.

 

테스트 코드가 없으면 불안한데…?

 

3. 이제 여러분의 개발 습관 속에 테스트 코드 작성이 자연스럽게 자리 잡길 바랍니다.

테스트가 익숙해지면, 여러분도 모르게 “테스트 먼저 작성하는 개발자” 가 되어 있을 거예요. 🚀

지금 바로 시작해 보세요! 아주 작은 것부터요. 한 번 습관이 되면 큰 효율을 경험할 수 있습니다.

 

그럼, 오늘도 정시 퇴근을 기원하며!

반응형

'개발 이야기' 카테고리의 다른 글

도르마무! (대충 트랜젝션 롤백 한다는 의미)  (6) 2025.03.23
Buy me a coffeeBuy me a coffee

댓글