GoLand를 사용한 테스트 기반 개발 (TDD)

Jessie Cho

테스트 기반 개발 또는 흔히 말하는 TDD는 테스트를 먼저 작성한 후, 이를 지원하는 코드를 생성하고, 모든 테스트가 통과되면 코드를 리팩토링하는 개발 프로세스입니다.

GoLand의 고유 기능들을 사용해 어떻게 이 워크플로를 효율적으로 진행할 수 있는지 살펴보겠습니다.

일반적인 TDD 워크플로는 다음과 같습니다.

테스트 작성하기

먼저, 임의의 테스트 파일(예: tdd_test.go)로 이동하여 테스트를 작성해봅시다.

Generate 기능(Windows/Linux의 경우 Alt+Insert, macOS의 경우 Cmd+N)을 사용해 테스트를 생성할 수 있습니다.

GoLand에서의 TDD - 01 - 메뉴 생성

여기서, 우리는 우리가 만들고자 하는 테스트의 유형(전형적인 테스트 유형)을 선택할 수 있습니다. –

GoLand에서의 TDD - 02 - 일반 테스트 생성

… 또는 테이블 테스트 방식을 사용한 테스트를 선택할 수 있습니다.

GoLand에서의 TDD - 03 - 테이블 테스트 생성

이어서, 테이블-테스트 접근 방법을 사용합니다. 이를 통해 간편하게 테스트 사례를 추가하고 코드를 깔끔하게 유지할 수 있습니다.

테스트 사례가 추가되면 코드는 이렇게 생깁니다.

GoLand에서의 TDD - 04 - 테스트 사례

테스트를 실행하여 실패하는지 확인하기

Run context configuration(Windows/Linux의 경우 Ctrl+Shift+F10, macOS의 경우 Ctrl+Shift+R)을 사용해 테스트를 실행합니다.

GoLand에서의 TDD - 05 - 코드 없이 테스트 실행하기

정상적으로는 테스트가 지금 실패해야 하지만, 실패할 수 있는 어설션을 만들지 않았으므로 Go 도구는 이를 통과로 보고합니다.

따라서, 다음 단계로 이동하여 코드를 생성하고 결과를 확인합니다.

코드를 작성하고 테스트를 통과하게 하기

테스트에서 아직 아무 것도 실행하지 않았으므로, 기본적인 코드를 제자리에 추가합니다.

GoLand에서의 TDD - 06 - 실패하는 코드 추가하기

특히 TDD를 수행할 때, 변경 시 자동으로 테스트를 실행하는 것을 좋아하는 사람들이 많으므로 IDE에서도 이 옵션을 활성화합니다.

GoLand에서의 TDD - 07 - 테스트 자동 실행 전환하기

다음 단계에서는 코드를 구현하고, 어떻게 테스트가 실패하도록 하는지 확인합니다.

GoLand에서 TDD - 08 - 양호한 코드를 추가하고 테스트를 통과하게 하기

코드 리팩토링하기

코드가 제대로 작동하면 테스트하지 않는 파일로 이동하여 약간 정리합니다. 여기서 Move, Rename기타 IDE의 리팩토링이 시작됩니다.

먼저, 코드를 다른 파일로 이동합니다.

GoLand에서의 TDD - 09 - 테스트하지 않는 파일로 코드 이동하기

그런 다음, 약간의 이름 변경과 정리를 합니다.

GoLand에서의 TDD - 10 - 리팩토링 및 코드 정리

이 리팩토링 과정 중 테스트가 여전히 통과하는 것을 볼 수 있습니다. IDE가 우리 대신 수행하는 자동화된 리팩토링에 대한 신뢰가 높아졌기를 바랍니다.

이상 GoLand를 사용해 Go로 TDD를 수행하는 법에 대하여 간단하게 알아보았습니다. 아래의 댓글 또는 당사의 이슈 트래커에 의견을 남기거나 @GoLandIDE로 트윗을 보내 주세요.

본 게시물은 Florin PățanTest Driven Development with GoLand를 번역한 글입니다.