>  기사  >  백엔드 개발  >  오류 처리와 golang 함수의 단위 테스트 결합

오류 처리와 golang 함수의 단위 테스트 결합

王林
王林원래의
2024-04-24 17:36:02827검색

GoLang의 오류 처리에서는 오류 유형을 사용하여 오류를 나타내며, 이는 fmt.Errorf()를 통해 생성될 수 있습니다. 단위 테스트는 테스트 라이브러리를 사용하여 테스트 사례를 작성하여 함수의 정확성을 확인하고 반환된 결과가 기대와 일치하는지 여부를 확인합니다.

오류 처리와 golang 함수의 단위 테스트 결합

GoLang 함수 오류 처리와 단위 테스트 일치

Error Handling

GoLang의 오류 처리 메커니즘은 매우 간단하고 효과적입니다. error 유형을 사용하면 함수 실행 시 오류를 나타낼 수 있습니다. 오류 메시지는 fmt.Errorf() 함수를 통해 생성될 수 있습니다. error 类型,我们可以表示函数执行中的错误。可以通过 fmt.Errorf() 函数创建错误信息。

package main

import (
    "fmt"
)

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("cannot divide by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 2)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(result)
    }
}

单元测试

单元测试对于验证函数的正确性至关重要。GoLang 提供了 testing 库,可以轻松编写和运行单元测试。

package main

import (
    "fmt"
    "testing"
)

func TestDivide(t *testing.T) {
    type testCases struct {
        a int
        b int
        expected int
        expectedError error
    }

    cases := []testCases{
        {10, 2, 5, nil},
        {10, 0, 0, fmt.Errorf("cannot divide by zero")},
    }

    for _, c := range cases {
        result, err := divide(c.a, c.b)
        if result != c.expected || err != c.expectedError {
            t.Errorf("Test failed for input (%d, %d) expected (%d, %s) but got (%d, %s)", c.a, c.b, c.expected, c.expectedError, result, err)
        }
    }
}

在此示例中,我们创建了一个测试表,其中包含不同的测试用例。然后,我们对每个测试用例运行 dividerrreee

단위 테스트

🎜🎜단위 테스트는 함수의 정확성을 확인하는 데 중요합니다. GoLang은 단위 테스트를 쉽게 작성하고 실행할 수 있도록 testing 라이브러리를 제공합니다. 🎜rrreee🎜이 예에서는 다양한 테스트 사례가 포함된 테스트 테이블을 만들었습니다. 그런 다음 각 테스트 사례에 대해 divide 함수를 실행하고 반환된 값과 오류가 예상 결과와 일치하는지 확인합니다. 🎜🎜오류 처리와 단위 테스트를 결합하면 다양한 입력 상황에서 기능이 예상대로 작동하는지 확인할 수 있습니다. 🎜

위 내용은 오류 처리와 golang 함수의 단위 테스트 결합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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