Я делаю юнит-тест об этом методе
function stripTime($datetime) {
return new \DateTime($datetime->format('Y-m-d'));
}
и я хочу проверить, что возвращаемый результат (дата) имеет правильный формат Y-m-d
например :
$actual = $this->stripTime(new \DateTime);
$this->assertEqual('Y-m-d', $actual->getFormat());
я знаю getFormat
Метод не существует, но мне нужно что-то вроде.
Ваша функция возвращает DateTime
объект, так что тест не имеет смысла. Вы бы лучше использовать assertInstanceOf
чтобы проверить, что это объект DateTime и что для него установлено время по умолчанию, а не оригинальное DateTime
объект имел.
В зависимости от настроек вашей системы этим значением по умолчанию может быть время сервера в момент создания объекта, 00:00:00 в текущем часовом поясе (по умолчанию системы или устанавливается date_default_timezone_set()
) или 00:00:00 по Гринвичу.
Если вы хотите иметь полный контроль над этим, укажите это в вашей функции:
function stripTime($datetime) {
return new \DateTime($datetime->format('Y-m-d 00:00:00'), new \DateTimeZone('GMT'));
}
Других решений пока нет …