>  기사  >  백엔드 개발  >  golang 함수에 대한 테스트 케이스를 작성하는 방법은 무엇입니까?

golang 함수에 대한 테스트 케이스를 작성하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-04-26 17:06:02888검색

Go에서 기능 테스트 케이스를 작성하려면 테스트 케이스 정의(func Test) 및 실패 보고(t.Error) 기능을 제공하는 테스트 패키지 사용이 포함됩니다. 단위 테스트는 개별 기능을 개별적으로 테스트하는 반면, 통합 테스트는 다른 구성 요소와의 상호 작용에 중점을 둡니다. 샘플 테스트 사례에서는 테스트 패키지를 사용하여 테스트 기능을 정의하고, 입력 및 출력 테스트 사례를 정의하고, 결과를 확인하고, go test 명령을 사용하여 실행하는 방법을 보여줍니다.

golang 함수에 대한 테스트 케이스를 작성하는 방법은 무엇입니까?

Go에서 함수 테스트 케이스 작성 가이드

Go 코드를 작성할 때 코드가 강력하고 올바른지 확인하려면 테스트 케이스를 작성하는 것이 중요합니다. 다음은 Go 언어를 사용한 실제 예제를 포함하여 기능 테스트 사례 작성에 대한 가이드입니다.

1. 단위 테스트와 통합 테스트

기능 테스트에는 두 가지 주요 유형이 있습니다.

  • 단위 테스트: 단일 기능의 격리된 동작을 테스트합니다.
  • 통합 테스트: 함수가 대규모 시스템의 다른 구성 요소와 어떻게 상호 작용하는지 테스트합니다.

2. Go의 testing 패키지 사용 testing

Go 语言中用于编写测试用例的标准库是 testing 包。这个包提供了一些有用的函数和类型,例如:

  • func Test(t *testing.T):定义一个测试用例。
  • t.Error():报告测试失败。
  • t.Fail():立即使测试失败。
  • t.Skip()
Go 언어로 테스트 사례를 작성하기 위한 표준 라이브러리는 testing 패키지입니다. 이 패키지는 다음과 같은 몇 가지 유용한 기능과 유형을 제공합니다.

func Test(t *testing.T): 테스트 사례를 정의합니다.

t.Error(): 테스트 실패를 보고합니다.

t.Fail(): 테스트를 즉시 실패합니다. t.Skip(): 현재 테스트를 건너뜁니다.

3. 테스트 케이스 작성

다음은 함수 테스트 케이스 작성의 예입니다.

package main

import "testing"

// myFunc 是要测试的函数
func myFunc(x int) int {
    return x * x
}

// TestMyFunc 测试 myFunc 函数
func TestMyFunc(t *testing.T) {
    // 定义测试用例
    tests := []struct {
        input int
        expected int
    }{
        {0, 0},
        {1, 1},
        {2, 4},
        {3, 9},
        {-1, 1},
    }

    for _, tc := range tests {
        // 调用正在测试的函数
        result := myFunc(tc.input)

        // 验证结果
        if result != tc.expected {
            t.Errorf("Test failed. Expected: %d, Got: %d", tc.expected, result)
        }
    }
}

4. 테스트 케이스 실행

🎜🎜다음 명령을 사용하여 테스트 케이스를 실행할 수 있습니다. 🎜
go test
🎜🎜5. 실용적인 전투 사례 🎜🎜🎜목록에 있는 요소의 합을 계산하는 함수를 생각해 보세요. 🎜
func sum(nums []int) int {
    sum := 0
    for _, num := range nums {
        sum += num
    }
    return sum
}
🎜다음은 몇 가지 테스트 사례입니다. 🎜
func TestSum(t *testing.T) {
    tests := []struct {
        input []int
        expected int
    }{
        {[]int{}, 0},
        {[]int{1}, 1},
        {[]int{1, 2}, 3},
        {[]int{1, 2, 3}, 6},
        {[]int{-1, 0, 1}, 0},
    }

    for _, tc := range tests {
        result := sum(tc.input)

        if result != tc.expected {
            t.Errorf("Test failed. Expected: %d, Got: %d", tc.expected, result)
        }
    }
}

위 내용은 golang 함수에 대한 테스트 케이스를 작성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.