> 백엔드 개발 > Golang > Golang 함수 테스트 및 디버깅

Golang 함수 테스트 및 디버깅

WBOY
풀어 주다: 2024-04-15 15:36:01
원래의
596명이 탐색했습니다.

Golang의 함수 테스트: _test.go로 끝나는 테스트 파일을 만듭니다. TestXXX라는 테스트 함수를 선언합니다. 여기서 XXX는 테스트 중인 함수의 이름입니다. 어설션을 사용하여 예상 결과가 실제 결과와 일치하는지 확인하세요. 중단점을 설정하고 디버거를 사용하여 테스트 실패를 디버깅합니다. 테이블 중심 테스트 및 적용 범위 도구를 사용하여 테스트 효율성을 향상시킵니다.

Golang 함수 테스트 및 디버깅

Golang 함수 테스트 및 디버깅

Golang에서 테스트는 코드의 신뢰성과 정확성을 보장하는 중요한 방법입니다. 이 튜토리얼에서는 Golang의 내장 테스트 프레임워크를 사용하여 기능을 테스트하고 디버그하는 방법을 안내합니다.

함수 테스트

함수를 테스트하려면 _test.go로 끝나는 새 파일을 만들어야 합니다. 이 파일은 테스트 중인 함수와 동일한 패키지에 있습니다. 테스트 파일에서 testing 패키지의 TestXXX 함수를 사용하여 테스트 함수를 선언합니다. 여기서 XXX는 테스트 중인 함수의 이름입니다. 예: _test.go 结尾的新文件。该文件位于与被测函数相同的包中。在测试文件中,使用 testing 包的 TestXXX 函数声明一个测试函数,其中 XXX 是被测函数的名称。例如:

// my_function_test.go

package mypackage

import (
    "testing"
)

func TestAdd(t *testing.T) {
    // ...
}
로그인 후 복사

断言

在测试函数中,使用断言来验证预期结果与实际结果是否一致。testing 包提供了多种断言函数,例如:

  • t.Equal(a, b):验证 ab 是否相等
  • t.ErrorIs(err, expectedError):验证 errexpectedError 是否是相同的错误
  • t.True(cond):验证 condtrue

实战案例

假设你有一个名为 add 的函数,该函数接受两个数字参数并返回它们的和。你可以编写以下测试函数来测试 add

// my_function_test.go

import (
    "testing"
)

func TestAdd(t *testing.T) {
    tests := []struct {
        a, b int
        want int
    }{
        {1, 2, 3},
        {3, 4, 7},
        {-1, -2, -3},
    }

    for _, tt := range tests {
        got := add(tt.a, tt.b)
        if got != tt.want {
            t.Errorf("add(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.want)
        }
    }
}
로그인 후 복사

Assertion

테스트 함수에서 어설션을 사용하여 예상 결과가 실제 결과와 일치하는지 확인합니다. testing 패키지는 다음과 같은 다양한 어설션 기능을 제공합니다.

t.Equal(a, b): a 및 b가 같은지 여부t.ErrorIs(err, ExpectError): errexpectedError가 동일한지 확인하세요. error

    t.True(cond): condtrue
  • 실제 사례
파일이 있다고 가정합니다. 두 개의 숫자 인수를 받아들이고 그 합계를 반환하는 add의 함수라고 합니다. 다음 테스트 함수를 작성하여 add 함수를 테스트할 수 있습니다. 🎜rrreee🎜🎜Debugging🎜🎜🎜디버깅 테스트가 실패한 경우 소스 코드에 중단점을 설정하여 디버거를 사용할 수 있습니다. VSCode와 같은 IDE에서는 코드 줄을 마우스 오른쪽 버튼으로 클릭하고 "중단점 설정/제거"를 선택하여 중단점을 설정할 수 있습니다. 디버거에서 코드가 실행되면 중단점에서 일시 중지되어 변수 및 스택 추적을 검사할 수 있습니다. 🎜🎜🎜Tip🎜🎜🎜🎜테이블 중심 테스트를 사용하여 여러 입력 세트에 대한 테스트를 단순화하세요. 🎜🎜커버리지 도구를 사용하여 테스트 코드가 충분한 함수 로직을 포괄하는지 확인하세요. 🎜🎜테스트 코드를 지속적인 통합 시스템과 통합하여 코드 변경 시 자동으로 테스트를 실행합니다. 🎜🎜

위 내용은 Golang 함수 테스트 및 디버깅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿