我正在对此方法进行单元测试
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
方法不存在,但我需要类似的东西。
答案 0 :(得分:1)
您的函数返回一个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'));
}