본문 바로가기
Golang/Study

chapter2(3) go test

by 윤원용 2022. 1. 18.

이전 글

 

chapter2(2)

go 확장자를 실행 시 키는 방법은 터미널에서 main함수가 있는 패키지(현재 파일 경로)에서 go run이라는 명령어를 사용하거나 IDE의 힘을 빌리는 방법이다. 오늘은 책에 나와있는 run, build, test에 대

java-web-developer.tistory.com

이전 글에 이어서 Go에서 기본으로 지원하는 단위 테스트 라이브러리를 이용한 단위 테스트를 포스트 하겠다.

테스트할 자료는 Go API인 strconv모듈을 사용해서 간단한 테스트를 만들었고 폴더 구조는

테스트 폴더 구조

위 사진과 같다. 앞으로 포스트 하면서 tests 폴더를 자주 이용할 예정이다. 약간 걱정인 게 import이지만 뭐... 해결책은 있겠죠? ㅎ

 

Go에서는 단위 테스트 모듈인 testing을 지원해주는 데 사용 규칙이 있다.

  1. 테스트 파일은 _test.go 접미사를 사용해야 한다.
  2. 같은 폴더 안에 여러 테스트 파일이 있을 수 있지만 함수명은 중복해서 사용할 순 없음.

책을 보고 본인이 이해한 건 이 두 가지만 이해하면 끝이다. (물론 같은 폴더 안에는 한 개의 패키지를 사용하는 건 기본)

 

이제 이론은 그만! 테스트를 해보자!!!

strconTestFile.go 파일은 strcon 모듈을 이용하여 문자열 인자로 받고 반환 타입이 int, bool, int64인 StringToBoolean, StringToInt64, StringToInt 함수를 만들었다.

짜잔

테스트하는 파일인 strconTestFile_test.go파일은 아래와 같다.

짜잔2

함수와 포인트에 대해선 나중에 차차 알아보고 지금 봐야 하는 건 testing 모듈을 사용하여 t *testing.T 인자를 받는 함수를 작성하고 t함수에서 Error관련 함수를 호출하면 go test 명령어 입력 시 해당 파일을 참조하여 테스트가 실행된다는 것이다.  (t변수에서 함수를 호출 안 하면 테스트가 실행될 때 포함 안됨) 실행해보면

테스트 실행

엄청 단순히 PASS 출력 후 줄 바꾼 후 ok  경로  테스트하는 동안 걸린 시간이  출력된다. 이렇게 실행할 때 단점이 있는데 전체 테스트 함수의 총계만 표출한다는 점이다. 함수 단위로 테스트의 결과를 보고 싶다면 go test명령어에 옵션으로 -v를 추가하면 함수 단위로 테스트 결과가 표출된다.

-v 옵션을 추가하여 테스트 실행

사실 책의 예제는 동물의 먹이로 테스트했는데 똑같이 옮겨 코딩하는 것보다 스스로 뭔가를 만드는 게 좋다 생각하기에 만들었다. 예제 코드도 깃허브에 올렸으니 궁금하면 보시길 ㅎㅎ

 

예제 코드

 

GitHub - YunWonYong/Golang

Contribute to YunWonYong/Golang development by creating an account on GitHub.

github.com

이로써 chapter2는 끝이다. 책에는 더 좋은 내용이 있는데 Go를 좀 더 이해 후 다시 읽어봐야 겠다... ㅋㅋㅋ

 

다음 chapter3는 Go언어 기초이다!!! 다음에~~ ㅋㅋ

'Golang > Study' 카테고리의 다른 글

chapter3(2) primitive type - boolean and int  (0) 2022.01.23
chapter3(1) variable  (0) 2022.01.19
chapter2(2)  (0) 2022.01.18
chapter2(1)  (0) 2022.01.17
Golang 시작하기  (0) 2022.01.17