>  기사  >  백엔드 개발  >  golang 함수의 단위 테스트에 대한 실제 튜토리얼

golang 함수의 단위 테스트에 대한 실제 튜토리얼

PHPz
PHPz원래의
2024-04-26 18:18:02790검색

Go 언어 단위 테스트 방법: 테스트 패키지와 테스트 중인 패키지를 가져옵니다. "Test"로 시작하는 테스트 기능을 정의합니다. 매개변수 및 예상 결과를 포함하여 테스트 사례를 정의합니다. 테스트 사례를 반복하고, 함수를 호출하고, 실제 결과를 예상 결과와 비교합니다. 차이가 있으면 트리거 테스트가 실패합니다.

golang 함수의 단위 테스트에 대한 실제 튜토리얼

Go 기능의 단위 테스트에 대한 실용 튜토리얼

단위 테스트는 소프트웨어 개발에 없어서는 안 될 부분으로, 코드의 정확성을 보장하고 결함을 줄이는 데 도움이 됩니다. Go에서는 내장된 testing 패키지를 사용하여 단위 테스트를 작성할 수 있습니다. testing 包编写单元测试。

代码示例

假设我们有一个 greetPackage 包,其中包含一个名为 Greet 的函数,该函数接受一个名字参数并返回一条问候语。

package greetPackage

import "fmt"

func Greet(name string) string {
    return fmt.Sprintf("Hello, %s!", name)
}

我们可以使用 testing 包编写一个单元测试来测试 Greet 函数的功能。

package greetPackage_test

import (
    "testing"

    "github.com/example/myproject/greetPackage"
)

func TestGreet(t *testing.T) {
    tests := []struct {
        name     string
        expected string
    }{
        {"Alice", "Hello, Alice!"},
        {"Bob", "Hello, Bob!"},
    }

    for _, test := range tests {
        actual := greetPackage.Greet(test.name)
        if actual != test.expected {
            t.Errorf("Greet(%s) = %s; expected %s", test.name, actual, test.expected)
        }
    }
}

运作原理

  • 步骤 1:引入必需的包。我们需要导入 testing 包和正在测试的包 (greetPackage)。
  • 步骤 2:定义测试函数。测试函数必须以 "Test" 开头,并接受一个 *testing.T 参数。
  • 步骤 3:定义测试用例。我们使用 tests 变量定义一个测试用例切片,其中每个用例包含要测试的参数 (name) 和预期的结果 (expected)。
  • 步骤 4:遍历测试用例并运行测试。我们使用 for 循环依次遍历测试用例,并调用 greetPackage.Greet 函数。
  • 步骤 5:检查实际结果。我们将 greetPackage.Greet 函数的实际结果 (actual) 与预期结果 (expected) 进行比较,如果不同,则引发一个 t.Error
코드 예제

명명된 매개변수를 받아들이고 인사말을 반환하는 Greet라는 함수가 포함된 greetPackage 패키지가 있다고 가정합니다.

go test -v github.com/example/myproject/greetPackage

testing 패키지를 사용하여 Greet 함수의 기능을 테스트하는 단위 테스트를 작성할 수 있습니다.

PASS
ok  github.com/example/myproject/greetPackage  0.004s

작동 방식🎜🎜
  • 🎜1단계: 필요한 패키지를 소개합니다. 🎜 testing 패키지와 테스트 중인 패키지(greetPackage)를 가져와야 합니다. 🎜
  • 🎜2단계: 테스트 기능을 정의합니다. 🎜테스트 기능은 "Test"로 시작하고 *testing.T 매개변수를 허용해야 합니다. 🎜
  • 🎜3단계: 테스트 사례를 정의합니다. 🎜 tests 변수를 사용하여 테스트 케이스 조각을 정의합니다. 여기서 각 케이스에는 테스트할 매개변수(name)와 예상 결과(expected)가 포함되어 있습니다. 코드>). 🎜
  • 🎜4단계: 테스트 사례를 반복하고 테스트를 실행합니다. 🎜for 루프를 사용하여 테스트 사례를 순차적으로 반복하고 greetPackage.Greet 함수를 호출합니다. 🎜
  • 🎜5단계: 실제 결과를 확인하세요. 🎜greetPackage.Greet 함수의 실제 결과(actual)와 예상 결과(expected)를 비교하여 서로 다른 경우, t.Error를 발생시킵니다. 🎜🎜🎜🎜테스트 실행🎜🎜🎜터미널에서 다음 명령을 실행하여 테스트를 실행하세요. 🎜rrreee🎜테스트에 성공하면 다음 메시지가 출력됩니다. 🎜rrreee

위 내용은 golang 함수의 단위 테스트에 대한 실제 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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