Выбор ответа Junior Тесты, бенчмарки и модули обновлено

t.Errorf и t.Fatalf

Вопрос

Чем t.Errorf отличается от t.Fatalf?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Errorf проваливает и продолжает тест, Fatalf сразу его останавливает. Errorf = Logf + Fail, тест продолжается, и можно увидеть все расхождения сразу.

Варианты ответа

  1. Errorf проваливает и продолжает тест, Fatalf сразу его останавливаетправильный ответ
  2. Errorf пишет предупреждение в лог теста, а сам тест при этом не падает
  3. Fatalf останавливает текущий и все остальные тесты пакета
  4. Fatalf завершает весь процесс тестов через os.Exit(1)

Разбор

Errorf = Logf + Fail, тест продолжается, и можно увидеть все расхождения сразу. Fatalf = Logf + FailNow, вызывает runtime.Goexit и останавливает только текущий тест или подтест, другие тесты пакета продолжат. os.Exit не вызывается. Важно: FailNow нужно вызывать из горутины теста, а не из запущенной им горутины.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.