테스트되지 않은 파일에서 Go 테스트 함수를 호출할 수 있나요?

DDD
풀어 주다: 2024-10-25 15:55:02
원래의
127명이 탐색했습니다.

Can You Call Go Test Functions From Non-Test Files?

비테스트 파일에서 테스트 함수 호출

Go에서 테스트는 특정 규칙과 방법론에 의존합니다. 이러한 규칙 중 하나는 테스트를 "_test.go" 접미사로 끝나야 하는 자체 테스트 파일로 분리해야 한다는 것입니다.

비테스트 파일에서 테스트 함수를 호출할 수 있습니까?

짧은 대답: 아니요.

귀하의 질문과 달리 테스트 함수는 테스트가 아닌 Go 파일에서 직접 호출할 수 없습니다. 이러한 분리를 통해 테스트는 테스트 중인 코드와 구별되고 독립적으로 유지됩니다.

Go에서 패턴 테스트

Go는 주로 두 가지 유형의 단위 테스트를 사용합니다.

  • 블랙박스 테스트: 공개, 내보낸 기능을 평가하고 외부 호출자가 해당 기능과 상호 작용하는 방식을 모방합니다.
  • 화이트박스 테스트: 비공개 평가 , 동일한 패키지 내에서 내보내지 않은 함수를 사용하여 내부 작업에 대한 더 깊은 통찰력을 제공합니다.

내보낸 "Sum"이 있는 다음 "예제" 패키지를 고려하세요. 함수 및 내보내지 않은 "추가" 함수:

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
}
로그인 후 복사

블랙박스 테스트(example_test.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()
        }
    }
}
로그인 후 복사

화이트박스 테스트 (example_internal_test.go):

package example_test

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()
        }
    }
}
로그인 후 복사

결론적으로 테스트 파일이 아닌 파일에서 테스트 함수를 호출하는 것은 Go 테스트 원칙에 위배됩니다. 단위 테스트 목적으로 별도의 테스트 패키지를 사용해야 하며 확립된 작업 흐름과 규칙을 준수해야 합니다.

위 내용은 테스트되지 않은 파일에서 Go 테스트 함수를 호출할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!