"Go help testfunc"의 두 판 사이의 차이

(새 문서: ==개요== {{소문자}} ;go help testfunc 'go test' 명령어는 테스트하려는 패키지에 해당하는 "*_test.go" 파일에서 테스트, 벤치마크, 예제 함수을 찾...)
 
3번째 줄: 3번째 줄:
;go help testfunc
;go help testfunc


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


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

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 }}