Comments 16
Скорее, статья довольно очевидная))
Описанный подход используется и без привязки конкретно к Go
Описанный подход используется и без привязки конкретно к Go
>> Тем не менее, вы не сможете протестировать функцию, которая вызывает os.Exit
Есть несколько рецептов по тестированию os.Exit, например, с использованием exec.Command
Есть несколько рецептов по тестированию os.Exit, например, с использованием exec.Command
Если честно, не понял… с exec.Command вы будете вызывать бинарник целиком; при этом вам надо как-то заставить его выполнить функцию, которая может вызвать os.Exit() и проверить код возврата. Здесь речь идет о
Один из рецептов и приведен в статье. Можно ссылку, где почитать о других рецептах?
go testи тестировании отдельных функций — запуском бинарника вы в этом случае не управляете. Да и это уже поведенческое тестирование, а не модульное…
Один из рецептов и приведен в статье. Можно ссылку, где почитать о других рецептах?
Странно, попала в спам нотификация от хабра, не увидел вашего ответа.
Вот пара нагугленых:
Testing an os.exit scenario in Golang
How to test os.exit scenarios in Go
Вот пара нагугленых:
Testing an os.exit scenario in Golang
How to test os.exit scenarios in Go
такое даже переводить не стоит
Если комму-то интересна эта тема, могу попробовать родить статью о том как это сделано у нас (около 15 проектов с общим кодом).
Сколько ни читаю статей про то как легко реюзать код го, никак не понимаю. Как можно реюзать код на языке который не поддерживает дженерики? Из механизмов реюза есть только функции. Типы реюзать не светит. Вот написал я лру кэш для картинок, захотел хранить в нем что-то другое, либо вся типобезопасность лесом, либо одно из двух...
Интерфейсы же. Делайте сразу кэш не только картинок, а чего-то, удовлетворяющего интерфейсу.
Интерфейсы не типобезопасны.
Обоснуйте. Если что — я не пустой интерфейс interface{} на вход предлагаю, а удовлетворяющую некоему интерфейсу структуру.
Что обосновать? Сортировку можно извернуться написать не имея ссылок на данные, но когда у тебя смысл в том что ты пишешь какой-то контейнер с данными или устройство ввода вывода то так не извернуться, нужны реальные ссылки на данные, а дженериков нет.
Sign up to leave a comment.
Разработка приложений на Go: повторное использование логики