Go의 go test 명령은 다음을 포함한 유연한 테스트 사례 메커니즘을 제공합니다. 명명 규칙: Testfaff960df4899d2a505ee22a0fd0f9a7, 매개변수는 *testing.T 어설션: 예상 값과 실제 값이 일치하는지 확인합니다(예: t). Equal() 및 t .Error() 하위 테스트: 큰 테스트 사례를 작은 부분으로 분해, t.Run()을 사용하여 테이블 테스트 생성: 테이블 데이터를 사용하여 테스트 사례 실행, t.RunTable()을 사용하여 실제 사례 생성: 시연 go test를 사용하여 웹 서비스 테스트
Go에서 go test
명령을 사용하여 테스트하면 코드의 정확성과 신뢰성을 보장할 수 있습니다. 암호. 그 힘은 유연하고 확장 가능한 테스트 케이스 메커니즘에서 나옵니다. go test
命令进行测试可以确保代码的正确性和可靠性。它的强大功能来自灵活且可扩展的测试用例机制。
测试用例函数的命名规则遵循以下格式: Test9b49193a68efaa6280f23fff2e0a30c0
。每个测试用例函数必须有一个 *testing.T
类型参数,用于报告测试状态和其他信息。
import "testing" func TestAdd(t *testing.T) { // ... 测试代码 }
断言是用来验证期望值和实际值是否一致的函数。Go 的测试包提供了几个断言函数,比如:
t.Equal(a, b)
:验证 a 等于 bt.NotEqual(a, b)
:验证 a 不等于 bt.True(x)
:验证 x 为 truet.False(x)
:验证 x 为 falset.Error(err)
:验证 err 不为 nil子测试允许将大型测试用例分解成较小的、可管理的部分。使用 t.Run()
函数创建子测试,传递子测试名称和一个测试函数。
func TestMath(t *testing.T) { t.Run("add", func(t *testing.T) { // 测试加法的子测试 }) t.Run("subtract", func(t *testing.T) { // 测试减法的子测试 }) }
表格测试可让您使用表格数据运行一组测试用例。使用 t.RunTable()
函数创建表格测试,传递表格数据和一个测试函数。
func TestTable(t *testing.T) { type Input struct { a, b int } tests := []Input{ {1, 2}, {3, 4}, {5, 6}, } t.RunTable("add", func(t *testing.T, in Input) { // 测试 add 函数,使用 in.a 和 in.b }, tests) }
下面是一个使用 go test
测试 Web 服务的示例:
import ( "net/http" "net/http/httptest" "testing" ) func TestGetProducts(t *testing.T) { // 创建一个模拟 HTTP 请求 req, err := http.NewRequest("GET", "/api/products", nil) if err != nil { t.Fatal(err) } // 创建一个响应记录器 rr := httptest.NewRecorder() // 调用正在测试的处理程序 http.HandlerFunc("/api/products", getProducts).ServeHTTP(rr, req) // 验证响应的状态码 if status := rr.Code; status != http.StatusOK { t.Errorf("错误的状态码:%d", status) } // 验证响应 body expected := `{"products": [{"id": 1, "name": "Product 1"}, {"id": 2, "name": "Product 2"}]}` if body := rr.Body.String(); body != expected { t.Errorf("错误的响应 body:%s", body) } }
go test
테스트
형식을 따릅니다. 각 테스트 케이스 함수에는 테스트 상태 및 기타 정보를 보고하는 *testing.T
유형의 매개변수가 있어야 합니다. 🎜rrreeet.Equal(a, b)
: a가 b와 같은지 확인 t.NotEqual(a, b)
: a가 b와 같지 않은지 확인t.True(x)
: x가 true인지 확인 li><li> <code>t.False(x)
: x가 false인지 확인하세요.t.Error(err)
: err이 false가 아닌지 확인하세요. nilt.Run()
함수를 사용하여 하위 테스트를 생성하고 하위 테스트 이름과 테스트 함수를 전달합니다. 🎜rrreeet.RunTable()
함수를 사용하여 테이블 테스트를 생성하고 테이블 데이터와 테스트 함수를 전달합니다. 🎜rrreeego test
를 사용하여 웹 서비스를 테스트하는 예입니다. 🎜rrreeego test
는 다양한 테스트 케이스를 생성하고 관리할 수 있는 강력한 도구입니다. 어설션, 하위 테스트 및 테이블 테스트의 기능을 최대한 활용하면 포괄적이고 신뢰할 수 있는 테스트를 작성하여 코드의 품질과 안정성을 향상시킬 수 있습니다. 🎜
위 내용은 Go 테스트를 사용하여 테스트 사례의 신비를 탐색하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!