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

Тип testing.T

Тип testing.T передается как параметр в каждую тестовую функцию, начинающуюся с префикса Test. Он предоставляет методы для управления выполнением теста: логирования сообщений, пропуска, отметки о неудаче и завершения теста досрочно. Экземпляр testing.T позволяет получать информацию о текущем тесте и управлять его состоянием.

Синтаксис

Тестовая функция всегда должна иметь следующий синтаксис:

func TestName(t *testing.T) { // тело теста }

Пример

Давайте напишем простой тест, который проверяет, что результат функции равен ожидаемому значению:

package main import ( "testing" ) func TestSum(t *testing.T) { res := 2 + 2 if res != 4 { t.Errorf("Sum is incorrect: got %d, want %d", res, 4) } }

Метод Errorf

Метод Errorf логирует сообщение об ошибке, но продолжает выполнение теста. Вызов этого метода отмечает тест как неудачный, но не останавливает его выполнение.

package main import ( "testing" ) func TestDivide(t *testing.T) { res := 10 / 2 if res != 4 { t.Errorf("Divide is incorrect: got %d, want %d", res, 4) } }

Результат выполнения кода при ошибке:

"Divide is incorrect: got 5, want 4"

Метод Fatal

Метод Fatal завершает выполнение теста немедленно и логирует сообщение. Используйте его, когда дальнейшее выполнение теста невозможно из-за критической ошибки.

package main import ( "testing" ) func TestFatalExample(t *testing.T) { res := 1 / 0 // ошибка в вычислениях if res != 1 { t.Fatal("test stopped due to critical error") } }

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

"test stopped due to critical error"

Метод Log

Метод Log выводит сообщение в журнал теста, но не влияет на его прохождение. Полезно для отладки и дополнительной информации во время выполнения теста.

package main import ( "testing" ) func TestLogExample(t *testing.T) { t.Log("Starting test") res := 5 * 5 t.Log("Result is", res) if res != 25 { t.Error("Multiplication is incorrect") } }

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

"Starting test" "Result is 25"

Метод Skip

Метод Skip пропускает тест с указанным сообщением. Используйте его, когда тест не должен выполняться при определенных условиях (например, если не настроено окружение).

package main import ( "testing" ) func TestSkipExample(t *testing.T) { if true { t.Skip("Skipping test due to condition") } // код теста }

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

"Skipping test due to condition"

Метод Parallel

Метод Parallel сообщает тестовому раннеру, что данный тест может выполняться параллельно с другими тестами. Он должен вызываться внутри тестовой функции для разрешения параллельного выполнения.

package main import ( "testing" "time" ) func TestParallelExample(t *testing.T) { t.Parallel() time.Sleep(100 * time.Millisecond) // проверка }

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

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