2017-12-27 294 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());