Ich verwende BDD (Behat) für Funktionstests in meinem Projekt. Jetzt habe ich ein Problem beim Testen einer Funktion mit zu vielen Hintergrundjobs. Beispiel:BDD-Test mit zu vielen Hintergrundjobs?
Scenario: Import issue at the first time
Given I have a issue package "1602.zip"
When I upload issue "1602.zip"
Then I have to wait until it is finished
And I can see list of articles are imported
And status of issue is "1"
„Dann muss ich warten, bis es fertig ist“ enthält:
- Server 1 hochgeladene Datei erhalten haben, legen einige Metadaten-Datenbank und Status markieren „Import“ , dann zip-Datei auf s3 hochladen
- Server 2 Download-Datei von s3 und verarbeiten Sie die Vermögenswerte Sachen wie PDF, Bilder, dann zip alles nach der Verarbeitung und erneut auf s3 hochladen.
- Server 3 Download das Ergebnis Zip-Paket (done von Server 2) von s3, und starten Sie Ausgabe (Import pdf, Bilder, Artikel ...)
"Und ich sehe importieren Liste Artikel werden importiert "Ich rufe eine API zum Server, um eine Liste der Artikel dieses Problems zu erhalten.
So wie Sie sehen können, weil während des Imports, haben wir zu viele Hintergrundjob (mit Resque), also muss ich warten, bis es durch Überprüfung des Status der Ausgabe beendet ist:
while ($status != 1) {
$status = getStatusOfIssue(123);
if (1 === $status) {
break;
}
}
Das Problem ist, Ich weiß nicht, wie lange ich warten muss, weil es auf die Größe des Ausgabepakets ankommt, je größer die Wartezeit ist. Also, was soll ich in dieser Situation tun?
Was "Ich muss warten bis es fertig ist" enthält? und was "Ich sehe Liste der Artikel sind importiert" Schecks? – lauda