Go 언어 개발에서 단위 테스트 및 통합 테스트를 수행하는 방법
요약:
소프트웨어 개발에서 단위 테스트 및 통합 테스트는 코드 품질과 기능적 안정성을 보장하는 중요한 수단입니다. Go 언어에는 완전한 도구 지원 세트도 있어 단위 테스트와 통합 테스트를 더 쉽고 효율적으로 수행할 수 있습니다. 이 기사에서는 Go 언어 개발에서 단위 테스트 및 통합 테스트를 수행하는 방법을 소개하고 일부 샘플 코드를 통해 이를 보여줍니다.
// add.go package main func Add(a, b int) int { return a + b }
// add_test.go package main import "testing" func TestAdd(t *testing.T) { result := Add(2, 3) if result != 5 { t.Errorf("Add(2, 3) = %d; want 5", result) } }
add_test.go 파일에는 Add 함수가 올바른 결과를 반환하는지 테스트하기 위해 TestAdd라는 함수를 정의합니다. test 함수에서는 test.T 형 객체의 Errorf 메소드를 호출하여 자세한 오류 정보를 출력할 수 있다. go test 명령을 실행하여 단위 테스트를 실행합니다.
// main_test.go package main import ( "net/http" "net/http/httptest" "testing" ) func TestHTTPHandler(t *testing.T) { req, err := http.NewRequest("GET", "/hello", nil) if err != nil { t.Fatal(err) } rr := httptest.NewRecorder() handler := http.HandlerFunc(HelloHandler()) handler.ServeHTTP(rr, req) if status := rr.Code; status != http.StatusOK { t.Errorf("handler returned wrong status code: got %v want %v", status, http.StatusOK) } expected := "Hello, World!" if rr.Body.String() != expected { t.Errorf("handler returned unexpected body: got %v want %v", rr.Body.String(), expected) } }
main_test.go 파일에서 먼저 모의 요청 객체 req를 생성한 후 httptest.NewRecorder 함수를 통해 응답 레코더 rr을 생성합니다. 그런 다음 HelloHandler 함수를 호출하여 요청을 처리하고 결과를 응답 로거에 기록합니다. 마지막으로 응답의 상태 코드와 응답 내용을 확인하여 통합 테스트를 수행합니다.
위 내용은 Go 언어 개발에서 단위 테스트 및 통합 테스트를 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!