Дельта-значения просто должны быть количеством секунд
Вам нужны секунды, в которых временные метки могут отличаться как 4th parameter to assert equals
или в вашем случае 2nd to equalTo
. Обе эти функции (assertEquals
/ equalTo
) указывают на PHPUnit_Framework_Constraint_IsEqual
, поэтому обработка дельты одинакова.
Пример:
<?php
class foo extends PHPUnit_Framework_TestCase {
public function testDateDiffsWorks() {
$date1 = new DateTime('2011-01-01 00:00:00');
$date2 = new DateTime('2011-01-01 00:00:03');
$this->assertEquals($date1->getTimestamp(), $date2->getTimestamp(), '', 5);
}
public function testDateDiffsFails() {
$date1 = new DateTime('2011-01-01 00:00:00');
$date2 = new DateTime('2011-01-01 00:00:03');
$this->assertEquals($date1->getTimestamp(), $date2->getTimestamp(), '', 0.5);
}
}
А на выходе
Первый тест работает, второй не проходит.
phpunit test.php
PHPUnit 3.5.14 by Sebastian Bergmann.
.F
Time: 0 seconds, Memory: 6.00Mb
There was 1 failure:
1) foo::testDateDiffsFails
Failed asserting that <integer:1293836403> matches expected <integer:1293836400>.
/home/edo/test.php:16