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초동안 벤치마크 함수를 반복해서 호출함

results matching ""

    No results matching ""