Ich habe eine Gurkenfunktion, die überprüft, ob eine Website Zahlungsdateien korrekt verarbeitet hat (BACS, SEPA, FPS usw.). Die erste Stufe des Prozesses besteht darin, die Zahlungsdateien zu erstellen, die wiederum erwartete Ergebnisdaten in einer Datenbank erzeugen. Diese Daten werden dann verwendet, um mit der Zahlungsverarbeitungswebsite zu validieren.Gurke - dieselbe Funktion mehrere Male ausführen, abhängig von Datensätzen in einer Datenbank
Wenn ich eine Datei verarbeite, funktioniert meine Funktion perfekt, um die erwarteten Ergebnisse zu validieren. Wo ich feststecke, ist, wie ich die Funktion bekomme, um (n) Male zu laufen, abhängig von der Anzahl der Datensätze/Dateien, die ursprünglich verarbeitet wurden.
Ich habe einen 'Around'-Hook mit einer Iteration mit Rekordzählung ohne Freude ausprobiert, kann nicht sehen, wie ich es in ein Outline-Szenario einbauen kann und denke jetzt, dass eine Rake-Aufgabe vielleicht funktionieren könnte.
Alle Ideen würden sehr geschätzt werden.
Hier ist eine Probe des Features:
Features: Die Verarbeitung SEPA Credit Transfer von Dateien. Zahlungen am selben Tag
Background:
Given we want to test the "SEPA_Regression" scenario suite
And that we have processed a "SEPA" file from the "LDN" branch
And we plan to use the "ITA1" environment
Then we log in to "OPF" as a "SEPA Department" user
@feature @find_and_check_sepa_interchange @all_rows
Scenario: Receive SEPA Credit Transfer Files for branch
Given that we are on the "Payment Management > Interchanges" page
When I search for our Interchange with the following search parameters:
| Field Name |
| Transport Date From |
| Bank |
| Interchange Reference |
Then I can check the following fields for the given file in the "Interchanges" table:
| Field Name|
| Interchange Reference |
| Transport Date |
| File Name |
| File Format |
| Clearing Participant |
| Status |
| Direction |
| Bank |
When I select the associated "Interchange Id" link
Then the "Interchange Details" page is displayed
aktualisieren Ich habe für die Funktion verschachtelte Schritte implementiert, so dass ich zum ersten Mal die Datensätze der Datenbank aufrufen und jeden Satz von Aufzeichnungen füttern (oder zumindest die Zeilen-ID) in das Hauptmerkmal wie so:
Eigenschaft
@trial_feature
Scenario: Validate multiple Files
Given we have one or more records in the database to process for the "SEPA_Regression" scenario
Then we can validate each file against the system
Eigenschaft Schritte:
Then(/^we can validate each file against the system$/) do
x = 0
while x <= $interchangeHash.count - 1
$db_row = x
# Get the other sets of data using the file name in the query
id = $interchangeHash[x]['id']
file_name = $interchangeHash[x]['CMS_Unique_Reference_Id']
Background.get_data_for_scenario(scenario, file_name)
steps %{
Given that we are on the "Payment Management > Interchanges" page
When I search for our Interchange with the following search parameters:
| Field Name |
| Transport Date From |
| Bank |
| Interchange Reference |
Then I can check the following fields for the given file in the "Interchanges" table:
| Field Name|
| Interchange Reference |
| Transport Date |
| File Name |
| File Format |
| Clearing Participant |
| Status |
| Direction |
| Bank |
When I select the associated "Interchange Id" link
Then the "Interchange Details" page is displayed
Scheint ein bisschen wie ein "Hack", aber es funktioniert.
Hallo Milton! Willkommen bei Stack Overflow! Können Sie genauer erklären, wie das Programm derzeit funktioniert? Vielleicht, indem Sie den Code, den Sie jetzt benutzen, und etwas Pseudo-Code hinzufügen, wie Sie wollen, dass es funktioniert? – thesecretmaster
@thesecretmaster - Aus irgendeinem Grund wird das anfängliche stackoverflow Frageformular von meiner Firma blockiert, also musste ich es auf meinem Telefon schreiben. Sieht so aus, als ob ich einen Kommentar abgeben kann, also hier geht es: Es ist nur eine grundlegende Gurke-Funktion, die sich auf der Website anmeldet und mit Watir Daten im Dom validiert. Wie gesagt, wenn ich nur einen Datensatz habe, ist alles in Ordnung. Wenn ich 2 Datensätze in der Datenbank habe, weiß ich nicht, wie die Funktion ein zweites Mal verarbeitet werden kann. – Milton70
Warum würde eine einfache Schleife nicht funktionieren? – thesecretmaster