Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Golang
/

Nil

Golang: Nil

Задание

Коммерческий опыт и Трудоустройство
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном телеграм-сообществе
  1. Привет, Мир!
  2. Go, Go, Go
  3. Переменные
  4. Функции
  5. Логический тип
  6. Математика и числа
  7. Строки
  8. Полезные функции для строк
  9. Условные конструкции
  10. Альтернативная условная конструкция
  11. Константы
  12. Цикл For
  13. Структуры и методы в Go
  14. Генерация строк в циклах
  15. Указатели
  16. Возврат структур из функций
  17. Nil
  18. Преобразование типов
  19. Ошибки
  20. Анонимные функции (Лямбды)
  21. Массивы
  22. Срезы
  23. Цикл for и срезы
  24. Структуры в срезах
  25. Сравнение срезов
  26. Слайсы из срезов
  27. Множественные операции над слайсами
  28. Копирование срезов
  29. Передача срезов в функцию
  30. Сортировка срезов
  31. Карты
  32. Обход карт
  33. Хранение структур в картах
  34. Вложенные карты
  35. Практики использования карт
/
Программирование
/
Курс Golang
/

Nil

Golang: Nil

Задание

Коммерческий опыт и Трудоустройство
Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
Loading...
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

package solution

import (
	"bytes"
	"io"
	"os"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestPrintConfig(t *testing.T) {
	tests := []struct {
		name     string
		cfg      *Config
		expected string
	}{
		{
			name:     "With host",
			cfg:      &Config{Host: strPtr("localhost"), Port: 8080},
			expected: "Host: localhost\nPort: 8080\n",
		},
		{
			name:     "Without host",
			cfg:      &Config{Port: 3000},
			expected: "Host is not set\nPort: 3000\n",
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			// Создаём pipe для перехвата вывода
			r, w, err := os.Pipe()
			assert.NoError(t, err)

			stdout := os.Stdout
			os.Stdout = w

			// Выполняем тестируемую функцию
			PrintConfig(tt.cfg)

			// Закрываем writer и проверяем ошибку
			closeErr := w.Close()
			assert.NoError(t, closeErr)

			// Восстанавливаем Stdout
			os.Stdout = stdout

			// Читаем перехваченный вывод
			var buf bytes.Buffer
			_, err = io.Copy(&buf, r)
			assert.NoError(t, err)

			// Проверка результата
			assert.Equal(t, tt.expected, buf.String())
		})
	}
}

func strPtr(s string) *string {
	return &s
}
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →