Метод testing.T.Logf

Метод testing.T.Logf выполняет форматированную запись сообщения в журнал текущего теста. В первый параметр метод принимает строку формата, во второй параметр - значения для подстановки в форматную строку. Логирование происходит только в случае, если тест завершился неудачей или был запущен с флагом -v (verbose).

Синтаксис

gofunc (t *testing.T) Logf(format string, args ...interface{})

Пример

Давайте используем метод Logf для вывода отформатированного сообщения в тесте:

gopackage main

import (
  "testing"
)

func TestLogfExample(t *testing.T) {
  name := "Alice"
  age := 30
  t.Logf("User %s is %d years old", name, age)
}

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

go"User Alice is 30 years old"

Пример

Давайте используем метод Logf для отладки в случае ошибки:

gopackage main

import (
  "testing"
)

func TestLogfWithError(t *testing.T) {
  result := 42
  expected := 100
  if result != expected {
    t.Logf("Result %d does not match expected %d", result, expected)
    t.Errorf("Test failed")
  }
}

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

go"Result 42 does not match expected 100"

Пример

Давайте выведем несколько отформатированных сообщений для отладки итераций:

gopackage main

import (
  "testing"
)

func TestMultipleLogf(t *testing.T) {
  items := []string{"a", "b", "c", "d", "e"}
  for i, item := range items {
    t.Logf("Processing item %d: %s", i, item)
  }
}

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

go"Processing item 0: a"
"Processing item 1: b"
"Processing item 2: c"
"Processing item 3: d"
"Processing item 4: e"

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

  • метод testing.T.Log,
    который выводит неформатированное сообщение
  • метод testing.T.Errorf,
    который форматирует и отмечает тест как неудачный
  • метод testing.T.Fatalf,
    который форматирует и немедленно останавливает тест
  • метод testing.T.Skipf,
    который форматирует и пропускает тест