і64
Спасибо
Brommie
наверное, нет так выразился про сущности)
aadz
хотя, func (t MyTime) DayBefore() MyTime это вполне себе метод. Но заключается в том, что `return time.Duration(84_килосекунды) * time.Second
aadz
Есть ли смысл огород городить?
Brommie
aadz
ужос кокой!
Brommie
aadz
не всегда :(
Dmitry
кто пользуется gb, вы делаете мейкфейл чтобы этот гб поставить?
Илья
да
Dmitry
Илья
под рукой нет, давно gb не пользую
Илья
можно глянуть?
но суть простая
go_dep := $(go_path)/bin/dep
$(go_dep): $(go_path)
go get -u github.com/golang/dep/cmd/dep
Илья
меняешь на gb :) и вот собранный gb у тебя будет
andrew
День добрый. Пытаюсь тестировать приложение, структура приложения такая:
- src
- tests
Соответственно пакет main и пакет tests, в тестах пытаюсь импортировать main но получаю ошибку import "../src" is a program, not an importable package
Есть ли какой-то способ не совмещать файлы тестов и самой программы? Либо каким образом можно в тесты прокинуть структуры и функции из main?
Dmitry
так?
Илья
если ты про ci - то в go_path/bin собираешь и его в path добавляешь
Artem
Илья
хотя и не про ci аналогичный совет
andrew
Artem
Artem
Но остальное так
Artem
Юнит как раз лучше рядом класть, так ты сможешь тестить не только публичные, но и привытные функции
andrew
значит в тестс создам 2 папки, для юнит тестов и для интеграционных
Daniel
Daniel
Микросерисы - это не юнит-тесты
Roman
Не надо тестить приватные
зависит от того что написано.. но я бы и приватные проверял, в них тоже баг может запрятаться
Sergey
100% покрытие тестами это то ещё дерьмо...
Anonymous
Так или иначе есть код, который использует приватные функции. С их помощью и можно добиться 100% покрытия
Vasilii
да, прям очень важно покрыть тестами кусок кода if err != nil { panic(err) }
Vasilii
без этого никогда не будешь уверенным
Daniel
Daniel
Юнит-тесты нужны только для одного: убедиться, что модуль соблюдает интерфейс (в широком смысле)
Roman
Ну чушь же. Для начала - в тестах тоже есть ошибки
это уже утверждение на тему "who tests the unit tests?". Начинать надо с того, что тесты должны быть максимально простыми, дабы в них не допускать ошибок. Если спонтанно взять числа с потолка основываясь на интуиции то у меня где-то 50% вероятность допущения ошибки в коде и 5-10% в тесте
Anonymous
Ясно. В го по видимому свои правила покрытия приватных и публичных функций. Хотелось бы посмотреть как вы пишите тесты для Java или php. Через рефлексию?
Daniel
В go те же правила, что везде
Roman
100% покрытие тестами это то ещё дерьмо...
поэтому я и добавил в скобках (в идеале). Идеала как известно обычно мы не достигаем, потому-что он зачастую и не нужен. Главное протестировать все острые угли об которые можно случайно порезаться
Sergey
Roman
Roman
Roman
и к нему надо стремиться))))
Anonymous
да, кстати
Вы же в курсе что есть «ожидаемое поведение»?
Kirill
а вы протестировали свои тесты?
Anonymous
а вы уже осознали бесполезность тестов?
Anonymous
Как можно пропустить такой кейс если полностью в тесте контролируется выполнение?
Anonymous
В том числе поведение приватных функций.
Roman
Artem
В го тестирование это чёрный ящик, данные на входе и результат на выходе, в большинстве случаев. Где тут контролируемое выполнение ?
Anonymous
Всем привет
помоги со свагерром ставлю на мак ось - не хочет работать
ставлю так
brew cask install homebrew/cask-versions/java8
brew install swagger-codegen
далее пытаюсь выполнить команду
swagger-codegen generate server -f example.yaml -t test
и получаю
Exception in thread "main" io.airlift.airline.ParseArgumentsUnexpectedException: Found unexpected parameters: [server, -f, example.yaml]
at io.airlift.airline.Cli.validate(Cli.java:148)
at io.airlift.airline.Cli.parse(Cli.java:116)
at io.airlift.airline.Cli.parse(Cli.java:97)
at io.swagger.codegen.SwaggerCodegen.main(SwaggerCodegen.java:35)
Roman
Artem
Ну может в других языках иначе, и там переменные на лету подменяются
Artem
В го я не ощущаю контроля над выполняем теста, что можно опускать тестирование приватных методов
aadz
Artem
Roman
aadz
Тестируй не тестируй программно, а все равно в серьезных контонрах дошли до того, что держат тестировщиков. И да, они правы!
Roman
у вас может быть коллективная ошибка, которую может раскрыть тест отдельных приватных функций. Но это всё сильно зависит от ситуации.
aadz
главное, чтобы тестировщик этого кода не писал, а только тестировал! Чтобы думал не как "писатель"
aadz
aadz
Roman
aadz
В Go нет приватных методов. Просто хочешь сделать черный ящик - сделай. И все. Никаких приватных методов нет.
Anonymous
со свагерром не работаете?
aadz
мы?
Artem