이전 글에 이어서 Go에서 기본으로 지원하는 단위 테스트 라이브러리를 이용한 단위 테스트를 포스트 하겠다.
테스트할 자료는 Go API인 strconv모듈을 사용해서 간단한 테스트를 만들었고 폴더 구조는
위 사진과 같다. 앞으로 포스트 하면서 tests 폴더를 자주 이용할 예정이다. 약간 걱정인 게 import이지만 뭐... 해결책은 있겠죠? ㅎ
Go에서는 단위 테스트 모듈인 testing을 지원해주는 데 사용 규칙이 있다.
- 테스트 파일은 _test.go 접미사를 사용해야 한다.
- 같은 폴더 안에 여러 테스트 파일이 있을 수 있지만 함수명은 중복해서 사용할 순 없음.
책을 보고 본인이 이해한 건 이 두 가지만 이해하면 끝이다. (물론 같은 폴더 안에는 한 개의 패키지를 사용하는 건 기본)
이제 이론은 그만! 테스트를 해보자!!!
strconTestFile.go 파일은 strcon 모듈을 이용하여 문자열 인자로 받고 반환 타입이 int, bool, int64인 StringToBoolean, StringToInt64, StringToInt 함수를 만들었다.
테스트하는 파일인 strconTestFile_test.go파일은 아래와 같다.
함수와 포인트에 대해선 나중에 차차 알아보고 지금 봐야 하는 건 testing 모듈을 사용하여 t *testing.T 인자를 받는 함수를 작성하고 t함수에서 Error관련 함수를 호출하면 go test 명령어 입력 시 해당 파일을 참조하여 테스트가 실행된다는 것이다. (t변수에서 함수를 호출 안 하면 테스트가 실행될 때 포함 안됨) 실행해보면
엄청 단순히 PASS 출력 후 줄 바꾼 후 ok 경로 테스트하는 동안 걸린 시간이 출력된다. 이렇게 실행할 때 단점이 있는데 전체 테스트 함수의 총계만 표출한다는 점이다. 함수 단위로 테스트의 결과를 보고 싶다면 go test명령어에 옵션으로 -v를 추가하면 함수 단위로 테스트 결과가 표출된다.
사실 책의 예제는 동물의 먹이로 테스트했는데 똑같이 옮겨 코딩하는 것보다 스스로 뭔가를 만드는 게 좋다 생각하기에 만들었다. 예제 코드도 깃허브에 올렸으니 궁금하면 보시길 ㅎㅎ
이로써 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 |