Pavel
ну так докер контейнер можно поднять
Constantine️
ну ты че
Pavel
че?
Daniel
что значит мокать?
https://ru.wikipedia.org/wiki/Mock-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82
Constantine️
это ж не для нас
Constantine️
мы любим сложности и коня в вакууме
Daniel
мы любим юнит-тесты, и не любим, когда они превращаются в интеграционные
engelbart
Вопрос как раз чо юзаете сами.
Я вижу в моках некоторые преимущества, как в том числе и в stage базе тоже
engelbart
Но юнит тесты мне бы хотелось без зависимостей на докеры шмокеры и базы
Constantine️
какое преимущество у мока?
Daniel
ты хочешь протестировать поведение своей функции, а не системы с подъемом докера и вот этого всего
Constantine️
в вопросе бд
Pavel
лол
Constantine️
еще круче
Constantine️
а поограммисты код пишут?)
engelbart
я нагуглил два:
https://github.com/golang/mock
https://github.com/DATA-DOG/go-sqlmock
engelbart
но оба, особенно первый какие то страшеннькие
engelbart
или я не понимаю их
Pavel
Constantine️
engelbart
Ну, красота ж спасет мир
engelbart
Michael
немного странно мокать бд кмк
Michael
получится, что ты проверяешь мок и всё
Daniel
я проверяю то, что между моком и тестом
Daniel
есть подозрение, коллеги, что вы неправильно понимаете назначение юнит-тестов
Petr
Daniel
если вы разрабатываете по TDD - юнит-тесты просто часть методологии, они появляются еще до кода, и тут никакой докер рядом оказаться не может
Daniel
а если вы разрабатываете как обычно - основная функция юнит-теста это сообщать вам о том, что вы поломали поведение юнита при багфиксе или имплементации новой фичи
Daniel
и тут опять докер лишний
Vladimir
а не твой код
Vladimir
Michael а проверкой что у тебя всякие миграции и прочая фигня проходит - это уже к интеграционным тестам скорее
Vladimir
а не к юнит
Michael
это понятно
Michael
в чем выигрыш мока как в примерах https://github.com/DATA-DOG/go-sqlmock
Michael
не совсем понятно
Vladimir
Vladimir
а значит что тесты можно выполнять где угодно, на самой минимальной среде
Vladimir
у тебя также будет удобный апи для проверки что все успешно
Aleksandr
Axm
шутки за 100 подвезли
Michael
video lessons java-java не так интересно
Michael
Vladimir
Michael просто хм, это правило хорошего тона что ты сделал go get, потом go test и оно просто протестировалось
Vladimir
а не потребовало от тебя поставить postgres, например
Vladimir
или не дай бог какую-нибудь экзотику
Vladimir
Поэтому стоит делить юнит тесты, которые должны тестировать функциональность отдельных элементов и мокать все
Vladimir
и интеграционные тесты, которые должны тестировать что это ваще можно выкатить в продакшн и не расфигачить все что вокруг
Vladimir
то есть что структура базы поменяется успешно, что какие-то тестовые данные нормально запишутся, что другие демона смогут с результатом работать и т.п.
Oleg
https://i.imgur.com/w54ATkB.png
engelbart
go-sqlmock не плох вроде
engelbart
но писанины жесть, я б хотел часть запросов уметь прпускать
engelbart
а часть хотел бы без последовательности иметь
Артур
ребята, можете обьяснить об этих строках:
fmt.Printf("%T \n", routes) // []interface {}
a := routes.([]interface{})
[]interface разве можно приводить? почему оно работает?
Anonymous
Массив из элементов приводится к массиву из interface{}
Anonymous
%T печатает тип переменной
Артур
а срез из элементов interface{} я могу привести к массиву другого типа?
Артур
тем же методом без итерации?
Anonymous
a, ok := routes.([]String{}) По-моему полная запись такая, если ok то переменная приведена к другому типу
Anonymous
https://tour.golang.org/methods/15
Мерль
Anonymous
можно в цикле перебрать срез интерфейсов и каждое конкретное значение привести к нужному типу
Артур
жаль,
a, ok := routes.([]String{})
было бы классно
Pavel
Привет. Может кто-нибудь подскажет: как с помощью go воспроизвести аудио файл на windows? :)
Anonymous
Anonymous
Pavel
Хочу сделать, чтоб зачитывались голосом входящие сообщения. В итоге текст переводится в мр3. Вот дальше надо как-то их воспроизводить постоянно по мере поступления)
Anonymous
Anonymous
https://gist.github.com/isaiah/5699797
Pavel
вот я чет не найду либы нужной
Pavel
портаудио не заведется же на винде?
Igor
vlc player? Запускать из под консоли\батника\отдельным процессом с нужными аргументами
Igor
Вроде даже http api есть для управления плэером
Pavel
тогда надо будет просить всех его устанавливать
Viktor
Посмотри тут, может чего найдешь
Pavel
смотрел
Pavel
)) даже тот код что выше приводили компилил уже