Wie erstelle ich eine Cucumber DataTable?

8

Ich möchte eine Cucumber DataTable manuell mit Java (anstelle von Gherkin) einrichten.

In Gherkin würde mein Tisch so aussehen:

%Vor%

Mein bisheriges Java sieht so aus:

%Vor%

Was ich zurückbekomme, ist eine DataTable mit Kopfzeilen aber ohne Inhalt. Es ist auch länger als erwartet:

%Vor%

Ich bin mir sicher, dass die Lösung ziemlich einfach sein muss, aber momentan bin ich etwas ratlos. Was muss ich tun, um meinen Tisch zu bekommen?

    
Christian 11.02.2014, 14:24
quelle

2 Antworten

7

Hoffe, das hilft. Wenn du voller Gurken bist, sieht der Schritt so aus ...

%Vor%

Sie wollen das in Java. (Beachten Sie, dass die übergebene guclucon.api.DataTable Einrichtung mit Ihren Erwartungen übereinstimmt Werte vor dem Test).

%Vor%

Ich werde sagen, dass er in den Beispielen von Aslak Hellesøy die DataTable nicht benutzt.

Er würde Ihr Beispiel so machen:

%Vor%

Für ein vollständiges Beispiel für weitere Lesevorgänge:

  • Essiggurken-Rechner: link
  • Java-Rechner Schrittdefinitionen: Link

BEARBEITEN:

Entschuldigung für den Overkill @Christian, Sie brauchten vielleicht nicht den ganzen Kontext, wie man ihn in einer App benutzt, nur eine saubere Methode, um DataTable.create zu verwenden und das meiste, was ich gepostet habe war eine andere Möglichkeit, diese Katze mit der Entry-Klasse zu häuten (was für diejenigen hilfreich sein könnte, die das später lesen).

So wie du es in deinem Kommentar getan hast, war es nicht weit. Ich bin kein Profi in Sammlungen, daher kann ich Ihnen keine Tipps geben, wie Sie Ihre 2D-Liste von Strings erstellen können, aber ich kann auf die letzten beiden Parameter eingehen (wenn Sie alle 4 verwenden).

  • Wenn Ihre Spalten Datums- oder Kalenderfelder verwenden, können Sie a angeben Formatieren in der vorletzte Parameter.
  • Wenn Sie das nicht verwenden Letzte für Spaltennamen, dann liest es automatisch Ihre oberste Zeile für die Spaltennamen.
  • Sie können auch das Locale.getDefault () löschen und es wird das für Sie tun; also dann guckst du:

.

%Vor%

Sie könnten auch den Konstruktor verwenden, der ebenso unordentlich wäre. :)

    
Eric D. Johnson 12.02.2014 20:22
quelle
3

Anstelle von DataTable können wir eine Liste von benutzerdefinierten Objekten erstellen, indem wir die gleichen Felder verwenden wie in der Datentabelle.

für z.B.

%Vor%

Nun sollte Ihre Step-Klasse einen Step als

definieren %Vor%

Und Ihre Buchklasse sollte aussehen wie

%Vor%

Da die Felder alle öffentlich sind, wird kein Getter / Setter benötigt. Wenn Sie sich entscheiden, sie als privat zu deklarieren (sehen Sie keinen Grund, warum), dann stellen Sie sicher, dass Sie auch Getter / Setter hinzufügen.

Hoffe, das hilft

    
Sanjay Bharwani 16.02.2016 12:39
quelle

Tags und Links