Да, и в руби есть timecop, он еще удобнее, чем универсальный мокинг, я его использую.
Но в некоторых языках (java, C#) закрытая архитектура классов и нет манкипатчинга.
И вообще, я лично, предпочитаю mock-ам fake классы
Этот бот в конце каждого дня отправляет (или, в зависимости от ряда условий, не отправляет) сообщение в чат и производит манипуляции с некоторыми предыдущими своими сообщениями (или, опять же, не производит).
Мне бы было этого уже достаточно. Ну ладно, хозяин-барин. Удачи!
Возможно есть другие, более удобные способы регулирования времени для процесса?
Немного оффтоп, т.к. не для процесса…
Но на практике, можно организовать классы/модули так, чтобы в unit-тестах просто подставлять нужное время без всяких костылей.
В теории можно в test env и для ручного тестирования похожий подход использовать.
Дело в том, что тут вся соль в тестировании алгоритмов самой вашей программы. Python от ОСи время может получать, это тестировать на мой взгляд — излишне.
Во-первых, переводить настолки в онлайн — дело неблагодарное. В том плане, что тонкостей и правил много, вещи, которые решаются между игроками буквально парой слов, превращаются в мегабайты кода, запросов и костылей. А настольщики всегда будут недовольны какой-то мелочью, которую вот никак не сделать. Плюс — это всегда мультиплеер, причем долгий по геймплею, а значит и игроков будет мало.
А вот у меня есть кейс, когда онлайн-настолка лучше. Я играю в основном с племянником (+ еще кто найдется), а мои дети сильно младше, а карточки красивые… Короче и не играют, и в процессе мешают, и не отойдешь никуда — разграбят)
А по поводу геймплея, мне подумалось что Империал 2030 хорошо бы пошел в онлайне — там много бойлерплейта по типу начисления налогов и т.п., часто сбиваемся. Автоматизация бы контролировала процесс. А дети империал грабят еще охотнее — там же фигурки танков и заводов, деньги цветные, акции…
Экрана в 24 дюйма достаточно и чтобы развернуть одно приложение на весь экран, и чтобы разместить два приложения рядом — в тех редких случаях, когда они действительно нужны одновременно (на «Маке» у меня для этого есть BetterTouchTool, а в Windows достаточно нажать клавишу Win + стрелку).
К сожалению, это годится лишь для тех, у кого хорошее зрение. Тогда и на 13" и даже на 11" ухитряются (поначалу недоумевал как им это удается — потом догадался, что это 100%+ зрение).
А мне нравится многомониторная конфигурация, когда ты редактируешь код, а в браузере на другом мониторе страничка перезагружается через livereload. Не отвлекаешься на переключение. Или на одном мониторе DevTools.
Но в некоторых языках (java, C#) закрытая архитектура классов и нет манкипатчинга.
И вообще, я лично, предпочитаю mock-ам fake классы
http://www.yegor256.com/2014/09/23/built-in-fake-objects.html
Основной недостаток мока — код может сломаться, а мок это успешно скроет. Ну и вообще, магия…
Мне бы было этого уже достаточно. Ну ладно, хозяин-барин. Удачи!
Вызов условной статической System.getTime() размазан по всему коду, от чего собственно и возник вопрос у ТС.
https://dzone.com/articles/why-static-bad-and-how-avoid
http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html
А то, как питон получает время от ОСи, протестировано разработчиками питона, зачем это тестировать?
Немного оффтоп, т.к. не для процесса…
Но на практике, можно организовать классы/модули так, чтобы в unit-тестах просто подставлять нужное время без всяких костылей.
В теории можно в test env и для ручного тестирования похожий подход использовать.
Дело в том, что тут вся соль в тестировании алгоритмов самой вашей программы. Python от ОСи время может получать, это тестировать на мой взгляд — излишне.
Все так же, как и обычно, работаю из дома. Отдельная комната с дверью — бесценно.
Она работала под Windows и требовала QuickTime.
А вот у меня есть кейс, когда онлайн-настолка лучше. Я играю в основном с племянником (+ еще кто найдется), а мои дети сильно младше, а карточки красивые… Короче и не играют, и в процессе мешают, и не отойдешь никуда — разграбят)
А по поводу геймплея, мне подумалось что Империал 2030 хорошо бы пошел в онлайне — там много бойлерплейта по типу начисления налогов и т.п., часто сбиваемся. Автоматизация бы контролировала процесс. А дети империал грабят еще охотнее — там же фигурки танков и заводов, деньги цветные, акции…
К сожалению, это годится лишь для тех, у кого хорошее зрение. Тогда и на 13" и даже на 11" ухитряются (поначалу недоумевал как им это удается — потом догадался, что это 100%+ зрение).
А мне нравится многомониторная конфигурация, когда ты редактируешь код, а в браузере на другом мониторе страничка перезагружается через livereload. Не отвлекаешься на переключение. Или на одном мониторе DevTools.
Фиксик-Папус: видимый разрыв цепи — это хорошо, но мало
Еще вот этот комментарий понравился, к другому посту:
http://fixik-papus.livejournal.com/55142.html?thread=6237798#t6237798
Репутация — страшная все таки штука.