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

Интерфейс testing.TB

Интерфейс testing.TB является общим интерфейсом для типов testing.T и testing.B. Он предоставляет набор методов, которые позволяют управлять выполнением тестов и бенчмарков, выводить сообщения об ошибках, пропускать выполнение и получать информацию о состоянии. Первым параметром методы интерфейса принимают аргументы для форматирования сообщений, вторым - сообщение, которое нужно вывести.

Синтаксис

type TB interface { Error(args ...any) Errorf(format string, args ...any) Fail() FailNow() Failed() bool Fatal(args ...any) Fatalf(format string, args ...any) Helper() Log(args ...any) Logf(format string, args ...any) Name() string Skip(args ...any) SkipNow() Skipf(format string, args ...any) Skipped() bool TempDir() string Cleanup(f func()) Setenv(key, value string) Context() context.Context Deadline() (deadline time.Time, ok bool) }

Пример

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

package main import ( "testing" ) func checkValue(tb testing.TB, val int) { tb.Helper() if val < 0 { tb.Errorf("value %d is negative", val) } tb.Logf("checking value: %d", val) } func TestCheckValue(t *testing.T) { checkValue(t, 10) checkValue(t, -5) } func BenchmarkCheckValue(b *testing.B) { for i := 0; i < b.N; i++ { checkValue(b, i) } }

Пример

Рассмотрим использование метода Skip для пропуска выполнения в зависимости от условий:

package main import ( "os" "testing" ) func runTest(tb testing.TB) { tb.Helper() if os.Getenv("TEST_ENV") == "skip" { tb.Skip("skipping test due to environment variable") } tb.Log("running test") } func TestRunTest(t *testing.T) { runTest(t) }

Пример

Использование метода Cleanup для освобождения ресурсов после завершения теста:

package main import ( "fmt" "testing" ) func withResource(tb testing.TB) { tb.Helper() tb.Cleanup(func() { fmt.Println("cleaning up resources") }) fmt.Println("using resources") } func TestWithResource(t *testing.T) { withResource(t) }

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

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