РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
957 of 1593 menu

Метод testing.T.FailNow

Метод testing.T.FailNow немедленно останавливает выполнение текущей тестовой функции, помечая тест как проваленный. В отличие от метода testing.T.Fail, который только устанавливает флаг ошибки, но продолжает выполнение, testing.T.FailNow прерывает исполнение теста прямо в точке вызова. Метод не принимает никаких параметров и не возвращает значений.

Синтаксис

t.FailNow()

Пример

Давайте проверим работу метода testing.T.FailNow в простом тесте:

package main import ( "fmt" "testing" ) func TestExample(t *testing.T) { fmt.Println("Начало теста") if 1+1 != 3 { t.FailNow() } fmt.Println("Этот код не выполнится") }

Результат выполнения теста:

"Начало теста" "--- FAIL: TestExample (0.00s)"

Пример

Давайте сравним поведение testing.T.Fail и testing.T.FailNow в одном тесте:

package main import ( "fmt" "testing" ) func TestComparison(t *testing.T) { t.Fail() fmt.Println("Этот код выполнится") t.FailNow() fmt.Println("Этот код не выполнится") }

Результат выполнения теста:

"Этот код выполнится" "--- FAIL: TestComparison (0.00s)"

Пример

Давайте используем testing.T.FailNow для остановки теста при обнаружении критической ошибки:

package main import ( "fmt" "testing" ) func divide(a, b int) int { if b == 0 { return 0 } return a / b } func TestDivide(t *testing.T) { res := divide(10, 0) if res == 0 { t.FailNow() } fmt.Printf("Результат деления: %d", res) }

Результат выполнения теста:

"--- FAIL: TestDivide (0.00s)"

Смотрите также

  • метод testing.T.Fail,
    который только помечает тест как проваленный без остановки
  • метод testing.T.Fatal,
    который останавливает выполнение с выводом сообщения об ошибке
  • метод testing.T.Failed,
    который возвращает статус провала теста
  • метод testing.T.SkipNow,
    который останавливает выполнение теста без отметки об ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить