Метод testing.T.Fail
Метод testing.T.Fail помечает текущий тест как проваленный,
но не останавливает его выполнение. В отличие от методов
testing.T.Fatal и testing.T.FailNow,
которые немедленно останавливают выполнение теста,
testing.T.Fail позволяет продолжить выполнение
последующих проверок. Метод не принимает никаких параметров
и не возвращает значений.
Синтаксис
t.Fail()
Пример использования
Давайте рассмотрим базовый пример использования метода
testing.T.Fail в тесте:
package main
import (
"testing"
)
func TestDivision(t *testing.T) {
result := 10 / 2
if result != 5 {
t.Fail()
}
// Этот код выполнится даже если тест уже помечен как проваленный
if result > 0 {
t.Log("Result is positive")
}
}
Результат выполнения теста:
"--- FAIL: TestDivision (0.00s)"
Пример совместного использования с testing.T.Failed
Метод testing.T.Failed позволяет проверить,
был ли тест помечен как проваленный. Это полезно для
условного выполнения кода:
package main
import (
"testing"
)
func TestValidation(t *testing.T) {
age := -5
if age < 0 {
t.Fail()
}
if t.Failed() {
t.Log("Validation failed: age cannot be negative")
}
// Дополнительная проверка выполнится в любом случае
if age > 0 && age < 18 {
t.Log("User is underage")
}
}
Результат выполнения теста:
"--- FAIL: TestValidation (0.00s)"
Пример сравнения с testing.T.FailNow
В отличие от testing.T.FailNow, метод
testing.T.Fail не прерывает выполнение теста:
package main
import (
"testing"
)
func TestCompareFailMethods(t *testing.T) {
// Пример с Fail - выполнение продолжается
t.Log("Starting test with Fail")
t.Fail()
t.Log("This line is executed after Fail")
// Пример с FailNow - выполнение прерывается
t.Log("Starting test with FailNow")
t.FailNow()
t.Log("This line is NEVER executed")
}
Результат выполнения теста:
"--- FAIL: TestCompareFailMethods (0.00s)"
Смотрите также
-
метод
testing.T.FailNow,
который немедленно останавливает выполнение теста -
метод
testing.T.Failed,
который проверяет, помечен ли тест как проваленный -
метод
testing.T.Error,
который объединяет логирование ошибки и вызов Fail -
метод
testing.T.Fatal,
который объединяет логирование ошибки и вызов FailNow