[go] Go 언어의 테스트 예외 처리 방법
Go 언어를 사용하여 테스트 코드를 작성할 때 예외 상황을 처리하는 방법을 살펴보겠습니다.
1. 테스트 코드에서 예외 발생
테스트 코드에서 특정 상황에서 예외가 발생하는지 여부를 테스트하고 싶을 때 testing
패키지의 Error
나 Fail
함수를 사용하여 예외를 발생시킬 수 있습니다.
예를 들어, 다음은 특정 조건이 만족되지 않을 때 예외를 발생시키는 테스트 코드의 예시입니다.
func TestFunction(t *testing.T) {
// ...
if conditionNotMet {
t.Error("Expected condition not met")
}
}
이렇게 하면 conditionNotMet
조건이 만족되지 않을 때 해당 테스트는 실패하게 됩니다.
2. 테스트 코드에서 예외 처리
Go 언어에서는 테스트 코드에서 예외를 처리하는 것이 일반적이지는 않지만, 예외를 처리해야 할 경우에는 다음과 같이 panic
과 recover
키워드를 사용하여 예외를 처리할 수 있습니다.
func TestFunction(t *testing.T) {
defer func() {
if r := recover(); r != nil {
t.Errorf("Test panicked with: %v", r)
}
}()
// Call the function that may panic
aFunctionThatMayPanic()
}
위 코드에서 defer
키워드를 사용하여 recover
함수를 호출하여 예외를 처리합니다.
이렇게 함으로써 테스트 함수 내에서 발생하는 예외를 처리할 수 있게 됩니다.
요약
Go 언어에서의 테스트 코드 내 예외 처리는 상대적으로 간단합니다. Error
나 Fail
함수를 사용하여 예외를 발생시키고, panic
과 recover
를 사용하여 예외를 처리할 수 있습니다.
이상으로 Go 언어의 테스트 예외 처리 방법에 대해 알아보았습니다.
Go 공식 문서를 참고하시면 더 자세한 내용을 확인하실 수 있습니다.