package smsc import ( "encoding/json" "fmt" "math/rand" "testing" ) func generateCode() string { return fmt.Sprintf("%04d", rand.Intn(10000)) } func TestSendSMS(t *testing.T) { // Создаем тестовый запрос req := RequestSMS{ ApiKey: "80g8w5-t4D5n2X5v2!8s1S3p5E2n2X68e", // Замените на реальный API-ключ для теста Phone: "79397804368", // Замените на реальный номер телефона Message: "Код подтверждения: " + generateCode(), } // Вызываем тестируемую функцию resp := SendSMS(req) // Проверяем, что нет ошибки if resp.Error != "" { t.Errorf("Ошибка при отправке SMS: %s", resp.Error) } // Проверяем, что ID и Cnt имеют ожидаемые значения (если применимо) // Эти проверки могут быть опциональными, так как значения зависят от ответа сервера if resp.ID == 0 { t.Error("Ожидался ненулевой ID") } if resp.Cnt == 0 { t.Error("Ожидался ненулевой Cnt") } printJSON(t, resp) } func printJSON(t *testing.T, data any) { jsonData, err := json.MarshalIndent(data, "", " ") if err != nil { t.Errorf("Ошибка при преобразовании в JSON: %v", err) return } fmt.Println(string(jsonData)) }