Как смоделировать функцию time () при тестировании в Laravel?

Я делаю конкурсный проект по математике с использованием Laravel. Все методы контроллера в проекте используют много функций time ().

Вопросы возвращаются пользователю в зависимости от того, находится ли текущее время между временем проведения конкурса.

Во время написания функциональных и модульных тестов, как мне подражать функциям времени () в контроллере, чтобы установить желаемое время при выполнении тестов для проекта?

1

Решение

Я думаю, что углерод должен быть использован вместо time():

Carbon::now()->timestamp // Or just now()->timestamp in 5.5+

Вы можете легко издеваться над экземплярами Carbon.

Если вы не используете time() много, вы могли бы также создать свой собственный помощник:

function timestamp()
{
if (app()->runningUnitTests()) {
return ....
} else {
return time();
}
}

И использовать его вместо time():

timestamp()
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]