>백엔드 개발 >Golang >golang 테스트 도구의 사용법을 자세히 설명하는 기사

golang 테스트 도구의 사용법을 자세히 설명하는 기사

PHPz
PHPz원래의
2023-03-30 13:34:541150검색

소프트웨어 개발 프로세스가 지속적으로 발전함에 따라 자동화된 테스트는 점차 소프트웨어 테스트의 주요 형태 중 하나가 되었습니다. 그러나 테스트 도구의 선택과 이를 학습하고 사용하는 과정은 종종 혼란스럽고 까다로울 수 있습니다. 이 기사에서는 고품질 테스트 사례를 작성하고 코드가 실제 애플리케이션에서 완벽하게 작동하는지 확인하는 데 도움이 되는 간단하면서도 강력한 테스트 프레임워크인 golang 테스트 도구의 사용법에 대해 설명합니다.

고랭 테스트란 무엇인가요?

golang 테스트는 Go 프로그래밍 언어와 함께 제공되는 공식 테스트 프레임워크입니다. 이를 통해 개발자는 테스트 사례를 쉽게 작성 및 실행할 수 있을 뿐만 아니라 go 테스트 명령줄 도구를 사용하여 코드 저장소에 테스트 적용 범위 보고서를 생성할 수 있습니다. 단순성과 유연성으로 인해 많은 Go 개발자가 선택하는 테스트 프레임워크가 되었습니다.

golang 테스트 사용법

golang 테스트는 단위 테스트, 성능 테스트, 샘플 테스트의 세 가지 테스트 유형을 지원합니다.

단위 테스트

Go에서 단위 테스트를 작성하는 것은 매우 쉽습니다. _test로 끝나는 새 Go 파일을 만들고 Test로 시작하고 *T 매개변수를 허용하는 함수를 하나 이상 작성하면 됩니다. _test 结尾,并编写一个或多个函数,这些函数以 Test 开头并接受一个 *testing.T 参数,如下所示:

package mypackage_test

import (
    "testing"
)

func TestAdd(t *testing.T) {
    if Add(1, 2) != 3 {
        t.Errorf("Expected 3 but got %d", Add(1, 2))
    }
}

在这个示例中,我们测试了一个名为 Add 的函数,该函数返回传递给它的两个数字的和。如果我们运行测试,它将输出类似于 --- FAIL: TestAdd (0.00s) 这样的结果,因为断言失败了。如果测试成功,将输出 PASS

性能测试

在 Go 中,性能测试同样简单。您只需要使用一个名为 Benchmark 的函数来编写一个性能测试,该函数接受一个 *testing.B 参数,如下所示:

func BenchmarkAdd(b *testing.B) {
    for i := 0; i < b.N; i++ {
        Add(1, 2)
    }
}

该示例测试了我们的 Add 函数的性能,该函数将两个数字相加。在测试中,我们将 Add 函数调用 b.N 次,并测量测试的总时间。Golang test 将输出一个结果表,其中包含每个测试的平均时间以及每个迭代的总时间。

示例测试

示例测试编写是 Golang test 的另一种模式。在这种模式下,我们编写一些简单的使用示例,以演示您的代码如何工作。Golang test 将生成实际的测试代码,并在执行测试时运行这些示例。示例测试可以通过创建一个名为 examples_test.go 的文件来定义,其中包含示例函数。

func ExampleAdd() {
    fmt.Println(Add(1, 2))
    // Output: 3
}

在该示例中,我们编写了一个 Add 函数的示例,对其进行了调用,并测试了输出是否正确。如果我们运行 go test,则可以看到示例测试的输出。

测试覆盖率

golang test 还支持通过 go test -cover

PASS
coverage: 80.8% of statements
ok      mypackage   0.062s
이 예에서는 전달된 두 숫자의 합을 반환하는 Add라는 함수를 테스트합니다. 테스트를 실행하면 어설션이 실패했기 때문에 --- FAIL: TestAdd (0.00s)와 같은 결과가 출력됩니다. 테스트가 성공하면 PASS가 출력됩니다.

성능 테스트

Go에서는 성능 테스트도 마찬가지로 쉽습니다. 다음과 같이 *testing.B 매개변수를 허용하는 Benchmark라는 함수를 사용하여 성능 테스트를 작성하기만 하면 됩니다.

rrreee

이 예제 테스트는 우리의 성능을 향상시킵니다. 두 개의 숫자를 추가하는 기능을 추가합니다. 테스트에서는 Add 함수를 b.N번 호출하여 총 테스트 시간을 측정합니다. Golang 테스트는 각 테스트의 평균 시간과 각 반복의 총 시간이 포함된 결과 테이블을 출력합니다. 🎜🎜예제 테스트🎜🎜예제 테스트 작성은 Golang 테스트의 또 다른 모드입니다. 이 모드에서는 코드 작동 방식을 보여주기 위해 몇 가지 간단한 사용 예제를 작성합니다. Golang 테스트는 실제 테스트 코드를 생성하고 테스트를 실행할 때 예제를 실행합니다. 예제 테스트는 예제 함수가 포함된 examples_test.go라는 파일을 생성하여 정의할 수 있습니다. 🎜rrreee🎜이 예에서는 Add 함수의 예를 작성하여 호출하고 출력이 올바른지 테스트했습니다. go test를 실행하면 예제 테스트의 출력을 볼 수 있습니다. 🎜🎜테스트 커버리지🎜🎜golang 테스트는 go test -cover 명령을 통해 코드 커버리지에 대한 정보 생성도 지원합니다. 커버리지 테스트는 작성한 테스트가 코드의 모든 상황을 포괄하는지 여부를 결정하는 데 도움이 됩니다. 커버리지 보고서는 일반적으로 다음과 같습니다. 🎜rrreee🎜이 예에서 테스트 커버리지는 80.8%입니다. 🎜🎜결론🎜🎜이 글에서는 Golang 테스트의 사용법에 대해 논의했습니다. 이는 코드가 실제 애플리케이션에서 완벽하게 작동하는지 확인하기 위해 고품질 테스트 사례를 작성하는 데 도움이 되는 간단하면서도 강력한 테스트 프레임워크입니다. 단위 테스트, 성능 테스트, 예제 테스트의 사용과 테스트 범위에 대한 보고서를 생성하는 방법을 살펴보았습니다. 이제 golang 테스트를 사용하여 다양한 상황에서 코드가 올바르게 작동하는지 확인하는 강력한 테스트 모음을 구축할 수 있습니다. 🎜

위 내용은 golang 테스트 도구의 사용법을 자세히 설명하는 기사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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