技能 golang-testing
🧪

golang-testing

安全

Написание эффективных тестов на Go

也可從以下取得: Joseph OBrien

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

支援: Claude Codex Code(CC)
📊 69 充足
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「golang-testing」。 Как написать тесты для функции, которая складывает два числа?

預期結果:

  • Используйте табличные тесты с t.Run для каждого случая:
  • Тестируйте положительные числа, отрицательные числа, смешанные знаки и нули
  • Используйте t.Errorf для сообщения об ошибках с ожидаемыми и фактическими значениями
  • Группируйте связанные тесты в слайс тестовых случаев для удобства поддержки

安全審計

安全
v3 • 1/10/2026

This is a pure prompt-based skill containing only markdown documentation about Go testing patterns. No executable code, scripts, network calls, or file system access. The skill provides informational guidance only.

1
已掃描檔案
428
分析行數
0
發現項
3
審計總數
未發現安全問題
審計者: claude 查看審計歷史 →

品質評分

38
架構
100
可維護性
81
內容
32
社群
100
安全
78
規範符合性

你能建構什麼

Изучение паттернов тестирования

Освойте табличные тесты, мокирование и организацию тестов для production-кода на Go.

Интеграционное тестирование

Настройте интеграционные тесты с тестовыми контейнерами для баз данных и внешних сервисов.

Бенчмаркинг кода

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

試試這些提示

Базовый табличный тест
Покажите, как написать табличный тест в Go для функции Divide, которая принимает два целых числа и возвращает частное и ошибку.
Мокирование зависимостей
Как создать мок для интерфейса UserRepository для тестирования UserService без реальной базы данных?
Интеграционные тесты
Напишите интеграционный тест с использованием testcontainers для тестирования моего репозитория против реальной базы данных PostgreSQL.
Бенчмарки производительности
Покажите, как написать бенчмарк Go для функции сортировки с разными размерами входных данных.

最佳實務

  • Тестируйте поведение, а не реализацию - фокусируйтесь на входах и выходах, а не на внутренних деталях
  • Используйте t.Helper() для пометки вспомогательных функций для более понятного сообщения об ошибках
  • Запускайте независимые тесты параллельно с t.Parallel() для ускорения тестовых наборов

避免

  • Избегайте одного теста со множеством утверждений - разделяйте на сфокусированные тестовые случаи
  • Не пропускайте t.Cleanup() для управления ресурсами
  • Избегайте жестко закодированных тестовых данных - используйте тестовые фикстуры или фабрики вместо этого

常見問題

Какие версии Go поддерживаются?
Работает с Go 1.14 и более поздними версиями. Примеры используют стандартную библиотеку testing package.
Какова максимальная сложность тестов?
Без ограничений. Паттерны масштабируются от простых модульных тестов до сложных интеграционных тестовых наборов.
Как интегрироваться с существующими тестовыми фреймворками?
Совместимо с testify, ginkgo, gocheck и другими библиотеками тестирования. Примеры используют стандартные паттерны.
Изменяет ли этот навык файлы моего проекта?
Нет. Этот навык предоставляет только руководство и примеры. Он не читает и не записывает файлы проекта.
Почему мои тесты падают?
Убедитесь, что ваш тестовый файл заканчивается на _test.go и находится в том же пакете, что и ваш код. Проверьте сигнатуры тестовых функций с параметром *testing.T.
Чем это отличается от встроенного тестирования Go?
Этот навык расширяет встроенное тестирование Go паттернами, лучшими практиками и примерами. Он основан на стандартных функциях тестирования.

開發者詳情

檔案結構

📄 SKILL.md