Метод testing.T.Skipped

Метод testing.T.Skipped проверяет, был ли пропущен текущий тест с помощью методов Skip, Skipf или SkipNow. Он возвращает true, если тест был пропущен, и false в противном случае. Этот метод полезен для условной логики в тестах, когда необходимо определить, было ли выполнение теста прервано.

Синтаксис

got.Skipped()

Пример 1

Давайте проверим, возвращает ли метод Skipped true после вызова Skip:

gopackage main

import (
  "testing"
)

func TestSkippedAfterSkip(t *testing.T) {
  t.Skip("Skipping test for demonstration")
  if t.Skipped() {
    // Этот код не выполнится, но метод Skipped вернет true
  }
}

Пример 2

Проверим, возвращает ли метод Skipped false, если тест не был пропущен:

gopackage main

import (
  "testing"
)

func TestNotSkipped(t *testing.T) {
  if t.Skipped() {
    t.Error("Test should not be skipped")
  }
}

Пример 3

Используем метод Skipped для условного выполнения логики в зависимости от статуса пропуска:

gopackage main

import (
  "testing"
)

func TestConditionalLogic(t *testing.T) {
  // Условный пропуск теста
  if testing.Short() {
    t.Skip("Skipping in short mode")
  }

  // Проверяем статус пропуска
  if t.Skipped() {
    // Этот код не выполнится, так как Skip прерывает выполнение
  } else {
    // Выполняем основной код теста
  }
}

Пример 4

Используем метод Skipped для проверки пропуска в подтестах:

gopackage main

import (
  "testing"
)

func TestSubtestSkipped(t *testing.T) {
  t.Run("subtest 1", func(t *testing.T) {
    t.Skip("Skipping subtest 1")
    if t.Skipped() {
      // Этот код не выполнится
    }
  })

  t.Run("subtest 2", func(t *testing.T) {
    if t.Skipped() {
      t.Error("Subtest 2 should not be skipped")
    }
  })
}

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

  • метод testing.T.Skip,
    который пропускает текущий тест с сообщением
  • метод testing.T.Skipf,
    который пропускает тест с форматированным сообщением
  • метод testing.T.SkipNow,
    который немедленно пропускает тест
  • метод testing.T.Failed,
    который проверяет статус завершения теста