Пакет test предоставляет обёртку над testing.T, а также автоматическую инициализацию конфигурации и логгера для использования в юнит- и интеграционных тестах.
Структура Test служит основным контейнером для всех зависимостей, часто используемых в тестах: конфигурация, логгер, контекст testing.T, а также вспомогательные утверждения require.Assertions.
Fields:
Случайно сгенерированный идентификатор теста (hex-строка длиной 8 символов).
Конфигурация, созданная с помощью config.New().
Логгер, инициализированный в режиме разработки и с уровнем Debug.
Ссылка на контекст текущего теста.
Обёртка require.New(t) для удобства утверждений.
Methods:
Создаёт и возвращает структуру Test, а также объект require.Assertions.
Автоматически выполняет:
- инициализацию конфигурации и логгера,
- генерацию короткого идентификатора теста,
- создание обёртки
require.New(t).
Возвращает объект конфигурации, связанный с текущим тестом.
Возвращает логгер, связанный с текущим тестом.
Возвращает объект require.Assertions для выполнения проверок внутри теста.
Возвращает идентификатор текущего теста (4 байта в hex-представлении).
Возвращает оригинальный объект *testing.T, переданный в New().
package mypkg_test
import (
"testing"
"github.com/txix-open/isp-kit/test"
)
func TestSomething(t *testing.T) {
testCtx, assert := test.New(t)
cfg := testCtx.Config()
logger := testCtx.Logger()
id := testCtx.Id()
logger.Info("Running test", log.String("id", id))
assert.NotNil(cfg)
}