Метод testing.T.Fatal
Метод testing.T.Fatal предназначен для немедленной остановки выполнения теста.
В качестве первого параметра метод принимает аргументы, аналогичные fmt.Print,
которые выводятся в качестве сообщения об ошибке. После вызова Fatal
тест считается проваленным, и его дальнейшее выполнение прекращается.
Синтаксис
t.Fatal(args ...interface{})
Пример
Давайте остановим выполнение теста при отрицательном значении:
package main
import "testing"
func TestPositiveValue(t *testing.T) {
x := 42
if x < 0 {
t.Fatal("value must be positive")
}
// код продолжается, если проверка пройдена
}
Результат выполнения теста при x = 42:
PASS
Пример
Используем Fatal для проверки возвращаемой ошибки:
package main
import (
"testing"
)
func TestProcess(t *testing.T) {
err := processData()
if err != nil {
t.Fatal("processing failed:", err)
}
// тест продолжается при успешной обработке
}
Результат выполнения теста при наличии ошибки:
"processing failed: some error"
Пример
Продемонстрируем остановку теста при обнаружении некорректных данных:
package main
import (
"testing"
)
func TestValidateUser(t *testing.T) {
user := getUser()
if user == nil {
t.Fatal("user must not be nil")
}
if user.Age < 18 {
t.Fatal("user age must be at least 18")
}
}
Результат выполнения теста при user.Age = 16:
"user age must be at least 18"
Смотрите также
-
метод
testing.T.Fatalf,
который останавливает тест с форматированным сообщением -
метод
testing.T.Error,
который сообщает об ошибке, но не останавливает выполнение -
метод
testing.T.FailNow,
который помечает тест как проваленный и немедленно останавливает -
метод
testing.T.Log,
который выводит сообщение без остановки теста