golang 中错误处理通过 error 类型表示错误,可通过 fmt.errorf() 创建。单元测试使用 testing 库,通过编写测试用例验证函数正确性,断言返回结果是否与预期一致。
GoLang 函数的错误处理与单元测试的搭配
错误处理
GoLang 中的错误处理机制非常简单且有效。通过使用 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)
}
}
}
在此示例中,我们创建了一个测试表,其中包含不同的测试用例。然后,我们对每个测试用例运行 divide
函数,并断言返回的值和错误与预期结果相符。
通过将错误处理与单元测试相结合,我们可以确保函数在各种输入情况下按预期工作。
以上就是golang函数的错误处理与单元测试的搭配的详细内容,更多请关注编程网其它相关文章!