Bedingtes Warten in Cypress

Feb 22 2023
Mithilfe einer rekursiven Funktion können Sie wiederholt auf die Anfrage warten, bis Sie die gewünschte Antwort erhalten. Testfall Bei unserem Testfall handelt es sich um einen bestehenden Benutzer (permanenten Benutzer), der einen neuen Benutzer per E-Mail einlädt. Der neue Benutzer erhält einen Registrierungslink und registriert sich für die Determ-Anwendung.

Mithilfe einer rekursiven Funktion können Sie wiederholt auf die Anfrage warten, bis Sie die gewünschte Antwort erhalten

Testfall

In unserem Testfall handelt es sich um einen bestehenden Benutzer (permanenten Benutzer), der einen neuen Benutzer per E-Mail einlädt. Der neue Benutzer erhält einen Registrierungslink und registriert sich für die Determ- Anwendung. Nachdem der neue Benutzer registriert wurde und Zugriff auf die App hat, müssen wir ihn löschen, um nach dem Test „aufzuräumen“. Da wir den vorhandenen Benutzer jedoch nicht löschen möchten, müssen wir die Benutzer-ID überprüfen, bevor wir den Benutzer löschen.

Lösung

Um den neu erstellten Benutzer zu löschen, müssen wir eine bestimmte API-Anfrage abfangen und darauf warten, die das Zugriffstoken des Benutzers enthält. Allerdings wird die gleiche Anfrage auch für den bestehenden Benutzer gesendet und wir möchten ihn nicht löschen. Der einzige Unterschied zwischen den Benutzern ist ihre Benutzer-ID, die wir nur aus der Antwort der API-Anfrage erhalten können.

Um dieses Problem zu lösen, können wir eine rekursive Funktion verwenden, die auf die API-Anfrage wartet und die Benutzer-ID überprüft. Wenn die Benutzer-ID mit der ID des bestehenden Benutzers übereinstimmt, ruft sich die Funktion erneut auf. Wenn die Benutzer-ID nicht identisch ist, speichern wir das Zugriffstoken und verwenden es, um den Benutzer später zu löschen.

Hier ist der Code für die rekursive Funktion:

Rufen Sie dann in Ihrem Test einfach die Funktion auf:

Bedingtes cy.wait()

Abschluss

Durch die Überprüfung der Benutzer-ID in der Antwort können wir sicherstellen, dass wir nur den richtigen Benutzer löschen. Der rekursive Funktionsansatz kann nützlich sein, wenn Sie auf eine bestimmte API-Anfrage warten und deren Antwort bedingt verarbeiten müssen. Und indem Sie eine rekursive Funktion verwenden, können Sie wiederholt auf die Anfrage warten, bis Sie die gewünschte Antwort erhalten.

Wenn Sie ein ähnliches Problem haben oder Hilfe bei der Umsetzung dieser Lösung benötigen, hinterlassen Sie gerne einen Kommentar.