
Alexander
12.09.2018
09:38:25
а почему именно нет? :)

Oleksandr
12.09.2018
09:49:10
Привет всем.
Нормально ли делать такое?
type time.Time MyTime
// custom method on built-in type alias
func (t MyTime) DayBefore() MyTime {
// code
}
Или лучше просто в функцию, принимающую time.Time сделать?

Alexander
12.09.2018
09:51:09
Если ты из типа не делаешь интерфес с его собственными методами, то не стоит. Будет проще использовать тип time.Time в стандартном виде

Google

Jack
12.09.2018
09:53:08

Oleksandr
12.09.2018
09:53:37
Спасибо

Jack
12.09.2018
09:53:39
наверное, нет так выразился про сущности)

Alexander
12.09.2018
10:01:58
хотя, func (t MyTime) DayBefore() MyTime это вполне себе метод. Но заключается в том, что `return time.Duration(84_килосекунды) * time.Second
Есть ли смысл огород городить?

Jack
12.09.2018
10:12:02

Alexander
12.09.2018
10:12:16
ужос кокой!

Jack
12.09.2018
10:12:17

Alexander
12.09.2018
10:12:29
не всегда :(

Dmitry
12.09.2018
10:26:40
кто пользуется gb, вы делаете мейкфейл чтобы этот гб поставить?

Илья
12.09.2018
10:27:02
да

Dmitry
12.09.2018
10:27:27

Google

Илья
12.09.2018
10:27:46
под рукой нет, давно gb не пользую
можно глянуть?
но суть простая
go_dep := $(go_path)/bin/dep
$(go_dep): $(go_path)
go get -u github.com/golang/dep/cmd/dep
меняешь на gb :) и вот собранный gb у тебя будет

andrew
12.09.2018
10:31:59
День добрый. Пытаюсь тестировать приложение, структура приложения такая:
- src
- tests
Соответственно пакет main и пакет tests, в тестах пытаюсь импортировать main но получаю ошибку import "../src" is a program, not an importable package
Есть ли какой-то способ не совмещать файлы тестов и самой программы? Либо каким образом можно в тесты прокинуть структуры и функции из main?

Dmitry
12.09.2018
10:32:45
так?

Илья
12.09.2018
10:33:15
если ты про ci - то в go_path/bin собираешь и его в path добавляешь

Artem
12.09.2018
10:33:20

Илья
12.09.2018
10:33:23
хотя и не про ci аналогичный совет

Dmitry
12.09.2018
10:33:45

andrew
12.09.2018
10:34:14

Artem
12.09.2018
10:35:35

andrew
12.09.2018
10:42:17

Andrei
12.09.2018
10:43:58

Artem
12.09.2018
10:44:47
Но остальное так
Юнит как раз лучше рядом класть, так ты сможешь тестить не только публичные, но и привытные функции

andrew
12.09.2018
10:47:24
значит в тестс создам 2 папки, для юнит тестов и для интеграционных

Daniel
12.09.2018
11:09:40

Artem
12.09.2018
11:24:19

Google

Daniel
12.09.2018
11:36:26
Микросерисы - это не юнит-тесты

Artem
12.09.2018
11:38:21

Roman
12.09.2018
11:43:23

Alexy
12.09.2018
11:44:30

Roman
12.09.2018
11:48:39

Sergey
12.09.2018
11:49:23
100% покрытие тестами это то ещё дерьмо...

Artem
12.09.2018
11:50:09

Alexy
12.09.2018
11:50:10
Так или иначе есть код, который использует приватные функции. С их помощью и можно добиться 100% покрытия

Vasilii
12.09.2018
11:50:22
да, прям очень важно покрыть тестами кусок кода if err != nil { panic(err) }
без этого никогда не будешь уверенным

Daniel
12.09.2018
11:50:34
Юнит-тесты нужны только для одного: убедиться, что модуль соблюдает интерфейс (в широком смысле)

Roman
12.09.2018
11:52:19
Ну чушь же. Для начала - в тестах тоже есть ошибки
это уже утверждение на тему "who tests the unit tests?". Начинать надо с того, что тесты должны быть максимально простыми, дабы в них не допускать ошибок. Если спонтанно взять числа с потолка основываясь на интуиции то у меня где-то 50% вероятность допущения ошибки в коде и 5-10% в тесте

Alexy
12.09.2018
11:52:32
Ясно. В го по видимому свои правила покрытия приватных и публичных функций. Хотелось бы посмотреть как вы пишите тесты для Java или php. Через рефлексию?

Daniel
12.09.2018
11:54:08
В go те же правила, что везде

Roman
12.09.2018
11:54:16
100% покрытие тестами это то ещё дерьмо...
поэтому я и добавил в скобках (в идеале). Идеала как известно обычно мы не достигаем, потому-что он зачастую и не нужен. Главное протестировать все острые угли об которые можно случайно порезаться

Sergey
12.09.2018
11:55:20

Roman
12.09.2018
11:55:28
и к нему надо стремиться))))

Google

Alexy
12.09.2018
11:56:14
да, кстати
Вы же в курсе что есть «ожидаемое поведение»?

Kirill
12.09.2018
11:56:20
а вы протестировали свои тесты?

Nyan
12.09.2018
11:56:32
а вы уже осознали бесполезность тестов?

Sergey
12.09.2018
11:56:33

Alexy
12.09.2018
11:56:55
Как можно пропустить такой кейс если полностью в тесте контролируется выполнение?

Roman
12.09.2018
11:57:27

Alexy
12.09.2018
11:57:38
В том числе поведение приватных функций.

Roman
12.09.2018
11:58:23

Admin
ERROR: S client not available

Artem
12.09.2018
11:59:02
В го тестирование это чёрный ящик, данные на входе и результат на выходе, в большинстве случаев. Где тут контролируемое выполнение ?

Artem
12.09.2018
12:00:57
Всем привет
помоги со свагерром ставлю на мак ось - не хочет работать
ставлю так
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
12.09.2018
12:01:07

Artem
12.09.2018
12:03:15
Ну может в других языках иначе, и там переменные на лету подменяются
В го я не ощущаю контроля над выполняем теста, что можно опускать тестирование приватных методов

b0000000000000t
12.09.2018
12:06:48

Alexander
12.09.2018
12:07:13

Artem
12.09.2018
12:08:42

Roman
12.09.2018
12:09:07

Alexander
12.09.2018
12:09:42
Тестируй не тестируй программно, а все равно в серьезных контонрах дошли до того, что держат тестировщиков. И да, они правы!

Roman
12.09.2018
12:10:20
у вас может быть коллективная ошибка, которую может раскрыть тест отдельных приватных функций. Но это всё сильно зависит от ситуации.

Google

Alexander
12.09.2018
12:11:02
главное, чтобы тестировщик этого кода не писал, а только тестировал! Чтобы думал не как "писатель"

Roman
12.09.2018
12:11:27

Alexander
12.09.2018
12:11:47

Roman
12.09.2018
12:18:36

Alexander
12.09.2018
12:18:39
В Go нет приватных методов. Просто хочешь сделать черный ящик - сделай. И все. Никаких приватных методов нет.

Artem
12.09.2018
12:19:50
со свагерром не работаете?

Alexander
12.09.2018
12:20:31
мы?

Artem
12.09.2018
12:20:33

Artem
12.09.2018
12:20:48
кто-нибудь кто может по проблеме подсказать

Alexander
12.09.2018
12:21:25
никого нет...
Ну, или подскажите парню "по проблеме", хотя он даже не осилил ее хотя бы описать...

Roman
12.09.2018
12:27:02

Alexander
12.09.2018
12:27:23
дык, в том и делло!

Foxcool
12.09.2018
12:27:42
что за проблема-то?

Dk
12.09.2018
12:27:42
Можно непростой вопрос? Вот за 1.5 года на python я выяснил почти все его направления использования: data science/web/администрирование/чуть науки. Понятно куда лезть и как. А какие основные направления у golang?

Foxcool
12.09.2018
12:28:00
но на сервисах и без легаси, что плюс