170 похожих чатов

Поделитесь плиз бестпрактикес у меня есть селект через горм в БД

где участвует time.Now(), в самом репозитории я прокинул интерфейс, который мне возвращает time.Now() в продакшн, и time.Date(забитая_дата) для тестов

но у меня есть модель, которая гормовским хуком AfterFind опять использует time.Now и проставляет нужные поля в зависимости от даты
какое решение для этого есть, кто-нибудь знает?
как мне мой интерфейс прокинуть в этот AfterFind? Хранить интерфейс time.Now() где-то глобально?

17 ответов

24 просмотра

когда вы переопределяете глобальные системные штуки, то скорее всего вам и правда глобально вынести это надо

Ну с ходу в голову приходит совет «не использовать gorm»

Alexey Popov
Ну с ходу в голову приходит совет «не использовать...

горм заменить на что угодно и задача останется той же, не знаю зачем ТС ее назвал

Alex- Автор вопроса
Alexey Popov
Ну с ходу в голову приходит совет «не использовать...

горм никак не вмешивается в логику по большому счету

Alex- Автор вопроса
Максим Федоров
когда вы переопределяете глобальные системные штук...

вы по сути делаете надстройку над языком, это не считая языка самый низкий уровень вашего кода

чтобы не путаться в терминологии и получить хороший результат - покажите кода пример)

Michael
чтобы не путаться в терминологии и получить хороши...

а что путаться? в системе надо сымитировать время 1 января 2024 года в таймзоне Europe/Moscow, тогда как ты в июне 2023 и посмотреть как операторы будут брать задачу в выходной

Максим Федоров
а что путаться? в системе надо сымитировать время ...

мне не понятно что там за интерфейсы и всё звучит как интеграционный тест

Michael
мне не понятно что там за интерфейсы и всё звучит ...

интерфейс времени, тут под интерфейсом не обязательно должен пониматься interface Foo

посмотрите в сторону https://github.com/nhatthm/go-clock

Alex- Автор вопроса

я думаю насчет monkey patch это норм идея для го?)

Alex
я думаю насчет monkey patch это норм идея для го?)

есть даже реализация 🙂 но это очень плохая идея

Alex
даже для тестов?)

я пользовал только 1 раз, когда плохая библиотека делала time.Now на который я никак не мог повлиять, но хотел протестировать поведение. https://github.com/bouk/monkey

вызывайте метод на модели, который вызовет clock.Now из нужного места

Alex- Автор вопроса
Илья О
вызывайте метод на модели, который вызовет clock.N...

да я уже глобальную переменную намутил, которая с Now() time.Time, и в тестах я ее подменяю)

Похожие вопросы

Обсуждают сегодня

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта