9장 테스트와 벤치마킹
단위테스트
파일 이름이
_test.go으로 끝나야 함패키지 이름도
_test으로 끝나게 할 수 있는데 이 경우 같은 디렉토리 안에 있더라도 외부로 공개되는 필드, 함수만 접근 가능go test명령어로 테스트testing패키지로 결과 출력 및 보고테스트 함수는 반드시 외부로 공개되어야하고 이름이 Test로 시작해야하고
*testing.T을 매개변수로 받아야하고 아무것도 리턴하면 안됨.모든 테스트는 먼저 이 테스트가 무엇이고 왜 필요한지 서술해야하고 그 결과를 출력해야함.
서술한 뒤에 중괄호로 스코프를 치는듯?
t.Log: 테스트를 서술할 때와 성공했을 때 사용.-v옵션을 넣지 않으면 보이지 않음.t.Fatal: 테스트에 실패했을 때 사용. 테스트 함수 실행 중지t.Error: 테스트에 실패했을 때 싸용. 테스트 함수를 중지하지않고 마저 실행함
mocking
http 요청의 경우 httptest 패키지로 mocking
NewServer으로 직접 mock server를 구성하는 방법NewRecorder로 특정 endpoint에 대한 mocking을 하는 방법
예제 코드
godoc에서 예제코드를 보여주기위해 코드를 작성하는 방법함수 이름은 무조건
Example{예제를 작성하려는 함수의 이름}이 되어야 함그 외에 파일 이름이나 패키지 이름 등 다른 모든 것은 일반적인 테스트와 동일
Output:같은 마커를 comment로 붙여서 예상 결과값을 보여줄 수도 있음
벤치마킹
작성한 코드의 성능을 측정하는 방법
go test -run="none" -bench="{벤치마크 함수 이름, 패키지, 경로 등}"*testing.B를 패러미터로 가지고 함수 이름은Benchmark{벤치마킹하려는 함수의 이름}이 되어야함그 외에 파일 이름이나 패키지 이름 등 다른 모든 것은 일반적인 테스트와 동일
반드시 일정 시간동안 반복해서 코드를 실행해야함
일반적으로 for 루프를 사용하고 횟수는
b.N값 사용일반적으로 최소 1초동안 벤치마크 함수를 반복해서 호출함
Last updated