TGViewer
Библиотека Go-разработчика | Golang Библиотека Go-разработчика | Golang @goproglib · 24.1K subscribers
Post #7475 4.08K
🧹 t.Cleanup: уборка в Go-тестах без лишних defer

Подняли тестовую БД, создали временный файл или запустили сервер? t.Cleanup позволяет привязать очистку прямо к жизненному циклу теста.

🟡 Главный плюс — хелперы могут сами отвечать за освобождение ресурсов:


func newTestDB(t *testing.T) *sql.DB {
t.Helper()

db := openTempDB(t)
t.Cleanup(func() {
db.Close()
})

return db
}


🟡 Теперь тесту не нужно помнить про defer:


func TestUsers(t *testing.T) {
db := newTestDB(t)
// ...
}


Cleanup выполнится после завершения теста, даже если тот упал через t.Fatal. Несколько cleanup-функций выполняются в обратном порядке регистрации.

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoToProduction
  • 👍 16
  • 🙏 2
  • 👾 2
  • ⚡ 1
More from @goproglib
  1. Sep 21, 2026🤩 Go с нуля: серия базовых шпаргалок Собрали путь от Hello, World! до goroutines, channel…
  2. Sep 20, 2026🤔 Вопрос с собеседования по Go Что выведет программа? ❤️ — [1 2 3 4 5] / [1 2 10] 🔥 — [1…
  3. Sep 19, 2026🛠 Rune — open-source IDE и terminal multiplexer на Go Rune объединяет IDE, терминал и AI-…
  4. Sep 18, 2026🤩 SQLite вместо отдельного брокера в Go Watermill поддерживает SQLite Pub/Sub — сообщения…
  5. Sep 17, 2026⚡️ Go 1.27 ускоряет небольшие аллокации В Go 1.27 появился size-specialized memory allocat…
  6. Sep 16, 2026🛠 Напишите конфиг сами viper — самая частая рекомендация для конфигурации в Go. Он умеет…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →