Написание тестов на Go может быть сложным без руководства по паттернам и лучшим практикам. Этот навык предоставляет комплексные примеры для табличных тестов, мокирования, интеграционного тестирования с контейнерами и бенчмарков производительности.
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「golang-testing」。 Как написать тесты для функции, которая складывает два числа?
預期結果:
- Используйте табличные тесты с t.Run для каждого случая:
- Тестируйте положительные числа, отрицательные числа, смешанные знаки и нули
- Используйте t.Errorf для сообщения об ошибках с ожидаемыми и фактическими значениями
- Группируйте связанные тесты в слайс тестовых случаев для удобства поддержки
安全審計
安全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.
品質評分
你能建構什麼
Изучение паттернов тестирования
Освойте табличные тесты, мокирование и организацию тестов для production-кода на Go.
Интеграционное тестирование
Настройте интеграционные тесты с тестовыми контейнерами для баз данных и внешних сервисов.
Бенчмаркинг кода
Пишите и запускайте бенчмарки для измерения и оптимизации критичных к производительности участков кода.
試試這些提示
Покажите, как написать табличный тест в Go для функции Divide, которая принимает два целых числа и возвращает частное и ошибку.
Как создать мок для интерфейса UserRepository для тестирования UserService без реальной базы данных?
Напишите интеграционный тест с использованием testcontainers для тестирования моего репозитория против реальной базы данных PostgreSQL.
Покажите, как написать бенчмарк Go для функции сортировки с разными размерами входных данных.
最佳實務
- Тестируйте поведение, а не реализацию - фокусируйтесь на входах и выходах, а не на внутренних деталях
- Используйте t.Helper() для пометки вспомогательных функций для более понятного сообщения об ошибках
- Запускайте независимые тесты параллельно с t.Parallel() для ускорения тестовых наборов
避免
- Избегайте одного теста со множеством утверждений - разделяйте на сфокусированные тестовые случаи
- Не пропускайте t.Cleanup() для управления ресурсами
- Избегайте жестко закодированных тестовых данных - используйте тестовые фикстуры или фабрики вместо этого