gpt4 book ai didi

PHPUnit equalTo 日期与 delta

转载 作者:IT王子 更新时间:2023-10-28 23:49:42 25 4
gpt4 key购买 nike

我在 PHPUnit 中遇到问题,我想在比较日期时在 equalTo 方法中使用 delta 参数。假设我想将相差不超过 10 秒的日期视为相等的日期。 $some_delta 的适当值是多少? 10? 10000?还是完全不同的东西?

$this->_restClient->expects($this->at(0))
->method('getData')
->with(
$this->equalTo(array('1')),
$this->equalTo(array('2')),
$this->equalTo($this->_date, $some_delta),
$this->equalTo(null),
)
->will($this->returnValue($this->_restResponses['generalRestResponse']));

最佳答案

增量值只需要是秒数

您需要时间戳可以不同的秒数,因为第 4 个参数断言等于,或者在您的情况下,第 2 个参数等于。这两个函数 ( 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

关于PHPUnit equalTo 日期与 delta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7091396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com