Мокинг времени, используемого всеми экземплярами DateTime в целях тестирования

Я хотел бы иметь возможность устанавливать время для каждого экземпляра DateTime , созданного на время выполнения PHPUnit или Behat Test.

Я тестирую бизнес-логику, относящуюся ко времени. Например, метод в классе возвращает только события в прошлом или будущем.

По возможности я не хочу этого делать:

  1. Напишите оболочку вокруг DateTime и используйте ее вместо DateTime во всем моем коде. Это потребовало бы небольшого переписывания моей текущей базы кода.

  2. Динамически генерировать набор данных при каждом запуске теста / набора.

Итак, вопрос: можно ли изменить поведение DateTime , чтобы всегда указывать определенное время по запросу?

20
задан Barry 26 October 2018 в 13:37
поделиться