>  기사  >  백엔드 개발  >  Go 기능에 대한 포괄적인 단위 테스트를 작성하는 방법

Go 기능에 대한 포괄적인 단위 테스트를 작성하는 방법

PHPz
PHPz원래의
2024-05-02 13:27:02656검색

Go에서 단위 테스트를 작성하면 코드 품질과 안정성을 보장하는 데 도움이 됩니다. 단위 테스트에는 종속성 가져오기, 개체 설정, 입력 및 출력 정의, 함수 호출, 출력 어설션과 같은 단계가 포함됩니다. 테스트 패키지의 Assert 기능을 사용하면 실제 출력과 예상 출력을 비교할 수 있습니다. go test 명령을 사용하여 테스트를 실행하고 모든 테스트가 통과하는지 확인하여 Go 코드의 정확성을 확인하세요.

如何为 Go 函数编写全面的单元测试

Go 기능에 대한 포괄적인 단위 테스트 작성

Go에서 단위 테스트를 작성하는 것은 코드 품질과 안정성을 보장하는 데 중요합니다. 단위 테스트를 사용하면 단일 함수 또는 메서드의 동작을 격리하고 테스트하여 예상대로 동작하는지 확인할 수 있습니다.

단위 테스트 구성

일반적인 단위 테스트에는 다음 부분이 포함됩니다.

  • 필요한 종속성 가져오기: 필수 패키지 또는 라이브러리를 가져옵니다.
  • 테스트 개체 설정: 테스트할 함수 또는 개체의 인스턴스를 만듭니다.
  • 입력 및 예상 출력 정의: 테스트 기능에 대한 입력 매개변수 및 예상 출력 결과를 설정합니다.
  • 테스트 함수 호출: 함수를 호출하고 입력 매개변수를 전달하여 테스트를 트리거합니다.
  • 어설션 출력: 어설션 라이브러리를 사용하여 실제 출력과 예상 출력을 비교하여 테스트 통과 여부를 확인합니다.

실용 사례

간단한 Sum 함수를 만들고 이에 대한 단위 테스트를 작성해 보겠습니다. Sum 函数并为其编写一个单元测试:

package main

import (
    "testing"
)

// Sum 返回两个数字之和
func Sum(a, b int) int {
    return a + b
}

func TestSum(t *testing.T) {
    // 设置测试表
    tests := []struct {
        a, b int
        want int
    }{
        {1, 2, 3},
        {-1, 5, 4},
        {0, -5, -5},
    }

    // 遍历测试表,对每个测试用例运行测试
    for _, tt := range tests {
        got := Sum(tt.a, tt.b)
        if got != tt.want {
            t.Errorf("Sum(%d, %d) = %d, want %d", tt.a, tt.b, got, tt.want)
        }
    }
}

断言库

Go 提供了[testing](https://golang.org/pkg/testing/) 包,其中包含各种断言函数,可用于比较实际输出和预期输出。一些常用的断言函数包括:

  • t.Fatal(): 如果断言失败,则终止测试。
  • t.Error(): 报告一个失败,允许测试继续。
  • t.Errorf(): 报告一个带有格式化错误消息的失败。
  • t.Equal(): 比较两个值是否相等。
  • t.NotEqual(): 比较两个值是否不相等。

运行测试

使用 go test

go test

Assertion library

Go에서는 [테스트]를 제공합니다(https: //golang.org/pkg/testing/) 패키지에는 실제 출력과 예상 출력을 비교하는 데 사용할 수 있는 다양한 어설션 함수가 포함되어 있습니다. 일반적으로 사용되는 일부 어설션 함수는 다음과 같습니다.

🎜t.Fatal(): 어설션이 실패하면 테스트를 종료합니다. 🎜🎜t.Error(): 실패를 보고하여 테스트를 계속할 수 있습니다. 🎜🎜t.Errorf(): 형식화된 오류 메시지로 실패를 보고합니다. 🎜🎜t.Equal(): 두 값이 같은지 비교합니다. 🎜🎜t.NotEqual(): 두 값이 같지 않은지 비교합니다. 🎜🎜🎜테스트 실행🎜🎜go test 명령을 사용하여 단위 테스트를 실행합니다. 🎜
PASS
ok      main    [no tests found]
🎜모든 테스트에 통과하면 다음 출력이 표시됩니다. 🎜rrreee🎜포괄적인 단위 테스트를 작성하면 Go 코드의 정확성과 신뢰성을 보장하여 애플리케이션의 품질과 유지 관리성을 향상시킵니다. 🎜

위 내용은 Go 기능에 대한 포괄적인 단위 테스트를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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