TGViewer
Библиотека Go-разработчика | Golang Библиотека Go-разработчика | Golang @goproglib · 24.1K subscribers
Post #7079 3.45K
😁 Минималистичная библиотека для проверки ошибок в Go

Попа ass даёт одну функцию и делает одну задачу: проверить ошибку. Никаких конструкций вроде assert.NoError(t, err) или require.ErrorIs(t, err, ErrSomething).

ass даёт единственный метод ass.Err(t, ...), который умеет сравнивать ошибки несколькими способами сразу. Не нужно выбирать между ErrorIs, ErrorAs и строковым сравнением. Метод сам разберётся, что имеется в виду, по типу второго аргумента.

Автор назвал это удачно: вызов выглядит как assErrt, что читается почти как assertEqual для ошибок. И да, писать ass на 50% короче, чем assert.

Устанавливаем как обычный Go-модуль:
go get github.com/Thiht/ass


Дальше в тестах:
err := f()

// Ошибки нет — проверяем на nil или пустую строку
ass.Err(t, err, nil)
ass.Err(t, err, "")

// Подстрока в тексте ошибки
ass.Err(t, err, "an error occurred")

// errors.Is — сравнение по значению
ass.Err(t, err, ErrValue)

// errors.As — сравнение по типу
ass.Err(t, err, reflect.TypeOf(&ErrType{}))


Один метод покрывает четыре разных сценария. Особенно удобно при табличных тестах, где нужно гонять один и тот же вызов с разными входными данными и ожидаемыми ошибками.

➡️ Репозиторий

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

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

#GoToProduction
  • 😁 17
  • 👍 4
More from @goproglib
  1. Sep 30, 2026🧑‍💻 Эмулятор AWS-сервисов Kumo — это небольшой инструмент на Go для локальной имитации A…
  2. Sep 29, 2026👨‍💻 Библиотека для написания LSP-серверов Написать свой Language Server с нуля на Go сло…
  3. Sep 28, 2026🤔 Вопрос с собеседования по Go Что выведет программа? ❤️ — 1 true / 0 false 🔥 — 1 true /…
  4. Sep 28, 2026👩‍💻 Что на самом деле происходит внутри Go map? После Go 1.24 обычный map внутри работае…
  5. Sep 26, 2026🔥 В Go 1.27 появился portable SIMD До этого SIMD-оптимизации в Go требовали архитектурног…
  6. Sep 25, 2026🤡🤡 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика #GoGiggle
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 →