Timestamp zu allen Objekten hinzufügen #36
Reference in New Issue
Block a user
Delete Branch "feature/29-timestamp-zu-allen-objekten-hinzufügen"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Timestamp zu allen Objekten hinzufügen
Zugehörige Issue(s):
Closes #29
Beschreibung
Timestamp's zu group, game und player Tabellen, DTO's und DAO's hinzugefügt, damit nach diesen sortiert werden kann.
WIP: Timestamp zu allen Objekten hinzufügento Timestamp zu allen Objekten hinzufügenclockdependency to pubspec.yaml 8150b42dba@@ -17,2 +20,3 @@this.winner = '',}) : id = id ?? const Uuid().v4();}) : id = id ?? const Uuid().v4(),createdAt = createdAt ?? clock.now();Warum Clock verwendet und nicht DateTime?
Datetime hat nicht die möglichkeit eine fakeclock zu erstellen, clock schon, nutzt aber under the hood afaik datetime
@@ -28,3 +33,1 @@final testPlayer2 = Player(name: 'Second Group');await database.playerDao.addPlayer(player: testPlayer);await database.playerDao.addPlayer(player: testPlayer2);await withClock(fakeClock, () async {Kannst du anstatt die fake clock verwenden nicht einfach überprüfen ob die timestamp des players = timestamp des db players ist?
Nein ist ungenau, hab's probiert, funkt net
Gibt dann abweichungen von Millisekunden, vermutlich weil die DB nicht so genau speichern kann wie das datetime object, weil die DB intern nämlich timestamps speichert und der ja nicht so genau ist.
["Drift supports two approaches of storing DateTime values in SQL:
As unix timestamp (the default): In this mode, drift stores date time values as an SQL INTEGER containing the unix timestamp (in seconds).]
Und wenn du ein Datum übergibst und danach checkst? Wir müssen ja nicht Testen das Datetime funktioniert sondern nur das der datentransfer geht
Ich finde das so schön und ist wohl auch Common practice, spricht doch nichts dagegen oder? Ich will ja eben auch wissen, ob der das Datum mit Zeit in der richtigen Genauigkeit speichert und nicht nur ob er es überhaupt tut. Sollte es mal durch ein Update oder so nicht mehr korrekt sein, ist es ja wichtig zu wissen, ob der datetime der in der DB gespeichert ist dem wahren entspricht. Außerdem will ich das ja so realitätsgetreu wie möglich halten und das datetime auch von der Klasse selbst erzeugen lassen, auch wenn ich es hijacke und nicht selber bei den Playern, groups und Games setzen.
Also was mich halt bisschen genervt hat, das man diverse Sachen jetzt in
await withClock(fakeClock, () async {});wrappen muss. Kannst du es nicht sonst so machen, dass alle Objekte die genutzt werden in dersetUp(() {});Methode erstellt, damit man die fake clock nicht mehr in den einzelnen Tests brauch?Bestimmt muss mal schauen
New commits pushed, approval review dismissed automatically according to repository settings
@@ -104,3 +117,3 @@test('Adding player to group works correctly', () async {await database.groupDao.addGroup(group: testgroup);await withClock(fakeClock, () async {Hier ist immer noch ne
fakeClock, wofür wird die gebraucht?New commits pushed, approval review dismissed automatically according to repository settings