Porównywanie dat DateTime w testach

0

Jak porównujecie daty w testach?

Mam taki problem. Tworzę nowy obiekt entity z polem createdAt typu \DateTime() i zapisuję do bazy. Następnie chcę sprawdzić czy poprawnie się zapisało do bazy, więc pobieram i porównuję daty.

 self::assertEquals($action->getCreatedAt(), $dbAction->getCreatedAt());

Leci mi błąd:

Failed asserting that two DateTime objects are equal.
Expected :2018-09-21T09:52:08.162459+0200
Actual   :2018-09-21T09:52:08.000000+0200
                              ^^^^^^

Okazuje się, że baza przechowuje datę z dokładnością do sekund. Moje pytanie jest zatem takie, jak najsensowniej porównać te daty. Aktualnie zastosowałem konwersję do timestamp, ale zastanawiam się czy to jest to poprawne:

self::assertSame($action->getCreatedAt()->getTimestamp(), 
                 $dbAction->getCreatedAt()->getTimestamp());
2

Mógłbyś porównywać daty sformatowane np. do Y-m-d - pytanie jednak: po co?
Co Ci daje taki test?

Ustaw not null constraint na bazie danych i wsio.

Nie wszystko warto pokrywać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1