go testing 패키지 소개 및 사용
go test
명령 을 사용 하여 실행 합 니 다.소개 하 다.
함수 테스트 정의:
func TestXxx(*testing.T)
이 TestXxx 함수 식 은 파일 의 끝 에 놓 여 있 습 니 다test.go 중.
간단 한 테스트:
func TestAbs(t *testing.T) {
got := Abs(-1)
if got != 1 {
t.Errorf("Abs(-1) = %d; want 1", got)
}
}
Benchmarks
함수 정의:
func BenchmarkXxx(*testing.B)
테스트 기준 은
go test -bench
을 통 해 집행 된다.-cover
명령 행 매개 변수,도달 율 정보 표시func BenchmarkHello(b *testing.B) {
for i := 0; i < b.N; i++ {
fmt.Sprintf("hello")
}
}
BenchmarkHello 10000000 282 ns/op
기준 함 수 는 b.N 회 를 실행 합 니 다.예 를 들 어 위의 10000000 번 의 실행 시간 은 282 ns 이다.
Subtests and Sub-benchmarks(하위 테스트 와 하위 기준)
이 피 드 테스트 는 표 구동 기준 테스트 와 레이 어 링 테스트 를 실현 할 수 있 습 니 다.일반적인 setup 과 teardown 방법 도 제공 할 수 있 습 니 다.
func TestFoo(t *testing.T) {
//
t.Run("A=1", func(t *testing.T) { ... })
t.Run("A=2", func(t *testing.T) { ... })
t.Run("B=1", func(t *testing.T) { ... })
//
}
Main
테스트 코드 에 setup 과 teardown 을 추가 해 야 할 때 가 있 습 니 다.테스트 전과 그 후에.주 스 레 드 에서 실행 되 는 코드 를 제어 하여 다른 상황 을 지원 해 야 할 때 도 있다.코드 정의:
func TestMain(m *testing.M)
테스트 를 실행 할 때 테스트 를 직접 실행 하 는 것 이 아니 라 TestMain 을 호출 합 니 다.이 때 m.Run 의 전후 에 setup 과 teardown 방법 을 호출 할 수 있 습 니 다.
func TestMain(m *testing.M) {
// call flag.Parse() here if TestMain uses flags
// setup
code := m.Run()
// teardown
os.Exit(code)
}
상용 시험 방법
Error(args ...interface{})
테스트 오류 정 보 를 출력 합 니 다.Log(args ...interface{})
테스트 로그 정 보 를 출력 합 니 다.Parallel()
동시 테스트.Fatal(args ...interface{})
치 명 적 인 오류 정보.Skip(args ...interface{})
이 테스트 오 류 를 건 너 뛰 었 습 니 다.testdata
testdata
테스트 폴 더 에 테스트 에 필요 한 테스트 데이터,정적 파일 을 저장 할 수 있 습 니 다.표 구동 테스트(표 구동 테스트)
표 테스트 는 데이터 시트 를 구축 하여 테스트 를 실행 하 는 방법 이다.subtest 와 결합 하여 각종 테스트 상황 을 덮어 쓸 수 있 습 니 다.
func TestOrderSrv_OrderSendToPay(t *testing.T) {
room := Room{}
db.First(&room)
order := test_createOrder(t, room)
type args struct {
order *models.Order
}
tests := []struct {
name string
args args
wantErr bool
}{
{
name: " ",
args: args{
order: order,
},
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := &OrderSrv{}
if err := s.OrderSendToPay(tt.args.order); (err != nil) != tt.wantErr {
t.Errorf("OrderSrv.OrderSendToPay() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
vscode 나 golandIDE 의 Go 플러그 인 을 사용 하여 테스트 용례 템 플 릿 생 성 을 지원 하 는 것 을 권장 합 니 다.
Ref
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Go : 테스트 실행에서 환경 변수를 전달하는 방법 등그러나 처음에는 여러가지 의문이나 익숙하지 않은 것으로 스트레스가 쌓이기도 합니다. 테스트를 실행할 때 환경 변수가 필요한 경우 ↓와 같이 환경 변수로 전달할 수 있습니다. 환경 변수가 많을 때는 쉘 스크립트 등에 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.