【发布时间】:2020-04-16 10:09:27
【问题描述】:
我是 phpunit 测试初学者。我有这样的课:
class ClassA
{
public function tracking($date)
{
//... something
$now = new \DateTime();
$days = $date->diff($now, false)->days;
$hours = $date->diff($now, false)->h;
$minutes = $date->diff($now, false)->i;
//... something
return true;
}
}
然后,我想对tracking() 方法进行单元测试。所以我做了一个这样的测试:
class ClassATest extends TestCase
{
/**
* @dataProvider trackingDataProvider()
* @param $params
* @param $expected
*/
public function testTracking($params, $expected)
{
$classA = new ClassA();
$result = $classA->tracking($params['data']);
$this->assertEquals($expected, $result);
}
public function trackingDataProvider()
{
return [
'happy-case-1' => [
'params' => [
'data' => new \DateTime()
],
'expected' => true
],
];
}
}
我运行测试并出现错误:Error: Call to a member function diff() on array。
我怎么能假设 diff() 将返回指定的值来测试?
请帮忙!
【问题讨论】:
标签: php unit-testing symfony phpunit