Ответ 1
Значения дельта просто должны быть числом секунд
Вам нужны секунды, чтобы метки времени могли отличаться от 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