Ich werde einen neuen Endpunkt schreiben, um das Domain-Objekt zu entsperren, so etwas wie:Mit der besten Praxis in API Testaufbau - DB-Kommunikation benötigt (TDD)
../domainObject/{id}/unlock
Wie ich TDD anwenden, habe ich begonnen, um zuerst einen API-Test zu schreiben. Wenn der Test fehlschlägt, werde ich mit dem Schreiben von Integrations- und Komponententests beginnen und den echten Code implementieren.
Im API-Test benötige ich eine gesperrte Domain-Daten für Test Fixture Setup, um den Entsperrendpunkt zu testen, der erstellt wird. Es gibt jedoch keinen Endpunkt zum Sperren des Domänenobjekts auf dem System. (Unsere Quartz-Jobs sperren die Daten.) Ich meine, ich muss Daten erstellen, indem ich die Datenbank direkt benutze.
Ich weiß, dass in der API-Test, gerade Datenbanknutzung nicht die beste Praxis ist. Wenn Sie Testdaten benötigen, sollten Sie auch die API aufrufen. z.B.
../domainObject/{id}/lock
Sollte dieses Szenario eine Ausnahme in diesem Fall? Oder sollte ich sonst noch üben?
Danke.
Ich denke, dass in einigen Szenarien, wenn die Einrichtung besonders schwierig/kostspielig ist, es akzeptabel ist, sich entweder auf einige Testdaten zu verlassen, oder noch besser - versuchen Sie es durch die Hintertür einzufügen. Das heißt, wenn Sie (irgendein) anderes Szenario testen, das die tatsächliche Einfügung/Schaffung eins. In Ihrem Fall könnte es in Ordnung sein, wenn es keine Möglichkeit gibt, die Quartz (Jobs) -Funktionalität zu kontrollieren/zu wickeln –
ja, Backdoor kann akzeptabel sein, danke. Allerdings habe ich keinen Api-Test für diese Funktionalität erstellt, da wir auch Akzeptanztests (Selen) haben, die es abdecken können. – skynyrd