Go에서 단위 테스트는 일반적으로 go test를 사용하여 실행됩니다. go test는 다음과 같이 표시된 테스트 함수를 식별하고 실행합니다. test.T 매개변수. 그러나 질문이 생깁니다. 테스트 실행을 시작하기 위해 테스트가 아닌 파일에서 테스트 함수를 호출할 수 있습니까?
안타깝게도 대답은 '아니오'입니다. Go의 테스트 프레임워크는 테스트 코드와 비테스트 코드를 분리하도록 설계되었습니다. 테스트 함수는 테스트 파일 내에서만 호출해야 하며 테스트 중인 단위는 적절한 패키지에서 가져와야 합니다.
Go는 두 가지 기본 테스트 패턴을 지원합니다.
유틸리티 추가 기능과 내보낸 Sum이 있는 example이라는 이름의 예제 패키지를 고려해 보세요. 내부 add 기능을 활용한 함수입니다.
example.go: 내보낸 함수와 내보내지 않은 함수가 포함된 패키지
<code class="go">package example func Sum(nums ...int) int { sum := 0 for _, num := range nums { sum = add(sum, num) } return sum } func add(a, b int) int { return a + b }</code>
<code class="go">package example_test import ( "testing" "example" ) func TestSum(t *testing.T) { tests := []struct { nums []int sum int }{ {nums: []int{1, 2, 3}, sum: 6}, {nums: []int{2, 3, 4}, sum: 9}, } for _, test := range tests { s := example.Sum(test.nums...) if s != test.sum { t.FailNow() } } }</code>
<code class="go">package example import "testing" func TestAdd(t *testing.T) { tests := []struct { a int b int sum int }{ {a: 1, b: 2, sum: 3}, {a: 3, b: 4, sum: 7}, } for _, test := range tests { s := add(test.a, test.b) if s != test.sum { t.FailNow() } } }</code>
결론적으로, 테스트 코드와 비테스트 코드를 분리하도록 설계되었기 때문에 테스트 파일 외부에서 테스트 함수를 호출하는 것은 불가능합니다. 이동 중. 단위 테스트는 항상 go test 명령을 통해 실행되어야 하며, 이를 통해 문제를 분리하고 의도하지 않은 코드 실행을 방지할 수 있습니다.
위 내용은 Go의 테스트 파일 외부에서 테스트 함수를 호출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!