사용자 정의 함수 단위 테스트에는 테스트 파일 생성, 테스트 함수 정의, 테스트 사례 작성 및 어설션 실행이 포함됩니다. 실패한 테스트 디버깅에는 디버깅 정보 활성화, 디버거 사용 및 중단점 설정이 포함됩니다.
사용자 정의 Go 기능 구현을 테스트하고 디버그하는 방법
Go에서 사용자 정의 기능을 테스트하고 디버깅하는 것은 정확성과 견고성을 보장하는 데 중요합니다. 이 기사에서는 Go에 내장된 테스트 프레임워크와 디버깅 도구를 사용하여 단위 테스트 및 사용자 정의 기능 디버깅 프로세스를 소개합니다.
단위 테스트
1단계: 테스트 파일 만들기
테스트하려는 myfunc
함수에 대해 myfunc_test.go
라는 이름의 테스트 파일을 만듭니다. . myfunc
,创建一个名为 myfunc_test.go
的测试文件。
步骤 2:定义测试函数
在测试文件中,使用 func TestMyfunc
为要测试的函数定义一个测试函数。测试函数应以 Test
开头,后跟要测试的函数名。
步骤 3:编写测试用例
在测试函数中,使用 t.Run
为不同的测试用例添加嵌套测试函数。每个嵌套函数接收一个 testing.T 参数,它提供了用来报告错误和失败的断言方法。
步骤 4:执行断言
使用 testing
包中提供的断言函数(如 t.Equal
、t.Error
和 t.FailNow
)来验证测试用例的预期输出或行为。
实战案例:测试一个计算字符串长度的函数
func TestStrlen(t *testing.T) { t.Run("Empty string", func(t *testing.T) { t.Equal("", strLen("")) }) t.Run("Non-empty string", func(t *testing.T) { t.Equal(5, strLen("Hello")) }) }
调试
如果测试失败或函数运行不符合预期,则可以使用 Go 的调试工具进行调试。
步骤 1:开启调试模式
使用 -gcflags="all=-N -l"
2단계: 테스트 함수 정의
테스트 파일에서func TestMyfunc
를 사용하여 테스트하려는 함수에 대한 테스트 함수를 정의합니다. 테스트 함수는 Test
로 시작하고 그 뒤에 테스트할 함수 이름이 와야 합니다.
3단계: 테스트 사례 작성
테스트 함수에서t.Run
을 사용하여 다양한 테스트 사례에 대한 중첩 테스트 함수를 추가합니다. 각 중첩 함수는 오류 및 실패 보고를 위한 어설션 방법을 제공하는 testing.T 매개변수를 받습니다.
4단계: 어설션 수행
testing
패키지에 제공되는 어설션 함수 사용(예: t.Equal
, t.Error
) 및 t.FailNow
)를 사용하여 테스트 사례의 예상 출력이나 동작을 확인합니다.
실용 사례: 문자열 길이를 계산하는 함수 테스트
$ delve debug app (delve) b fibonacci # 设置断点 (delve) c # 继续执行 (delve) next # 单步执行 ... (delve) p fibonacci(5) # 检查变量值
Debugging
🎜🎜테스트가 실패하거나 함수가 예상대로 실행되지 않으면 Go의 디버깅 도구를 사용하여 디버깅할 수 있습니다. 🎜🎜🎜1단계: 디버그 모드 활성화 🎜🎜🎜-gcflags="all=-N -l"
플래그를 사용하여 프로그램을 컴파일하여 디버깅 정보를 활성화합니다. 🎜🎜🎜2단계: 디버거 사용🎜🎜🎜디버거(예: delve 또는 gdb)를 시작하고 실행 중인 프로그램에 연결합니다. 🎜🎜🎜3단계: 중단점 설정 및 변수 검사🎜🎜🎜함수가 실행되는 동안 디버거를 사용하여 중단점을 설정하고 변수 값을 검사합니다. 🎜🎜🎜4단계: 코드 단계별 실행 🎜🎜🎜디버거의 단일 단계별 실행 기능을 사용하여 코드를 한 줄씩 단계별로 실행하고 각 단계 후에 변수 값을 검사합니다. 🎜🎜🎜실용 사례: 피보나치 수열을 계산하는 함수 디버깅 🎜🎜🎜디버깅을 위해 delve 사용: 🎜rrreee위 내용은 사용자 정의 golang 함수 구현을 테스트하고 디버그하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!