GO · 테스트
테이블 기반 테스트
Go의 핵심 테스트 패턴. 테스트 케이스를 테이블로 정의하여 반복적인 코드를 줄입니다.
테스트중급table-testtestingsubtesttdd
핵심 설명
Go의 핵심 테스트 패턴. 테스트 케이스를 테이블로 정의하여 반복적인 코드를 줄입니다.
Go code
package main
import (
"fmt"
"testing"
)
func Add(a, b int) int { return a + b }
func TestAdd(t *testing.T) {
tests := []struct {
name string
a, b int
expected int
}{
{"양수 덧셈", 2, 3, 5},
{"음수 포함", -1, 5, 4},
{"제로", 0, 0, 0},
{"큰 수", 1000000, 1, 1000001},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := Add(tt.a, tt.b)
if got != tt.expected {
t.Errorf("Add(%d, %d) = %d, want %d",
tt.a, tt.b, got, tt.expected)
}
})
}
}
func main() {
// go test -v -run TestAdd
fmt.Println("테이블 기반 테스트: go test -v")
}학습 팁
테이블 기반 테스트에 t.Run을 사용하면 각 케이스가 서브테스트로 실행되어 실패 시 어떤 케이스인지 명확히 알 수 있습니다.
주의할 점
테스트 함수 이름은 반드시 Test로 시작해야 합니다. 소문자로 시작하면 테스트 러너가 인식하지 못합니다.
자주 묻는 질문
테이블 기반 테스트란 무엇인가요?
Go의 핵심 테스트 패턴. 테스트 케이스를 테이블로 정의하여 반복적인 코드를 줄입니다.
테이블 기반 테스트 학습 시 주의할 점은 무엇인가요?
테스트 함수 이름은 반드시 Test 로 시작해야 합니다. 소문자로 시작하면 테스트 러너가 인식하지 못합니다.
Continue Learning
Go 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.