go help testfunc

Jmnote (토론 | 기여)님의 2023년 6월 17일 (토) 13:20 판 (→‎개요)

1 개요

go help testfunc

'go test' 명령어는 테스트하려는 패키지에 해당하는 "*_test.go" 파일에서 테스트, 벤치마크, 예제 함수를 찾을 것이다.

Test 함수는 이름이 TestXxx(Xxx는 소문자로 시작하지 않는다)이고 시그니처가 있어야 한다.

func TestXxx(t *testing.T) { ... }

Benchmark 함수는 이름이 BenchmarkXxx이고 시그니처가 있어야 한다.

func BenchmarkXxx(b *testing.B) { ... }

퍼즈 테스트는 FuzzXxx라는 이름의 테스트이며 시그니처가 있어야 한다.

func FuzzXxx(f *testing.F) { ... }

Example 함수는 Test 함수와 유사하지만 *testing.T를 사용하여 성공 또는 실패를 보고하는 대신 출력을 os.Stdout에 인쇄한다. 함수의 마지막 주석이 "Output:"으로 시작하면 출력이 주석과 정확히 비교된다(아래 예시 참조). 마지막 주석이 "Unordered output:"으로 시작하면 출력이 주석과 비교되지만 행의 순서는 무시된다. 이러한 주석이 없는 Example은 컴파일되지만 실행되지는 않는다. "Output:" 뒤에 텍스트가 없는 예제는 컴파일되고 실행되며 출력을 생성하지 않을 것이다.

Godoc은 함수, 상수, 변수 Xxx의 사용을 보여주기 위해 ExampleXxx의 본문을 표시한다. 리시버 타입이 T 또는 *T인 메소드 M의 Example은 이름이 ExampleT_M이다. 뒤따르는 _xxx로 구분되는 지정된 함수, 상수, 변수에 대한 여러 Example이 있을 수 있다. 여기서 xxx는 대문자로 시작하지 않는 접미어이다.

다음은 Example의 예시이다.

func ExamplePrintln() {
	Println("The output of\nthis example.")
	// Output: The output of
	// this example.
}

다음은 출력 순서가 무시되는 다른 예시이다.

func ExamplePerm() {
	for _, value := range Perm(4) {
		fmt.Println(value)
	}

	// Unordered output: 4
	// 2
	// 1
	// 3
	// 0
}

전체 테스트 파일은 하나의 Example 함수, 하나 이상의 다른 함수, 유형, 변수, 상수 선언을 포함하고 Test, Benchmark, Fuzz 테스트가 없는 경우 Example로 처리된다.

자세한 내용은 testing 패키지 문서를 참조하자.

2 같이 보기

3 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}