2017-12-27 296 views
2

我有测试类:PHPUnit的詹金斯:预计日期时间和日期实际

class ClassTest extends \PHPUnit_Framework_TestCase 
{ 
    /** 
    * @covers \Path\Class::method() 
    * @dataProvider methodData 
    */ 
    public function testMethod($data, $expected) 
    { 
     $this->object = $this->getMockBuilder("Path\Class") 
      ->setConstructorArgs([..]) 
      ->getMock(); 
     .... 
     $response = $this->object->method($data); 
     $this->assertEquals($expected, $response); 
    } 
    public function methodData() 
    { 
     $entity= new Entity(); 
     $entity->setDateArrivee(new \DateTime()); 
     .... 
     .... 
    } 
} 

我运行詹金斯工作PHPUnit的。 dateArrivee在响应中的日期和期望值不相同。我不知道为什么。 你能帮我吗?

+2

这将在很大程度上取决于你如何从'methodData()'数据提供者返回数据,以及什么是在方法发生()是调用。 ClockMock或存储函数中使用的初始化日期时间,以及$期望的回报也有帮助。 –

+0

你是否在你的dataprovider/tests中多次创建'DateTime'实例?如果是这样,它们之间可能会有微小的差异((微秒))。确保使用相同的时间戳生成日期,例如通过硬编码(目前使用当前时间戳)。 –

回答

0

我在TestMethod的写这个方法

$entity->setDateArrivee(new \DateTime());