Erstellen Sie ein Wörterbuch aus, und übergeben Sie es als eine Karte, um eine Java-Methode in Robot Framework
Muss ich weiterleiten java.util.Karte, um eine test-Methode
In der tsv-Datei, ich habe versucht, um ein Wörterbuch zu erstellen, wie diese:
${MYDICT} = Create Dictionary a 1 b 2
Aber ich habe den Fehler:
Einstellung der variable '${MYDICT} = Create Dictionary a 1 b 2' Fehler: Variable name '${MYDICT} = Create Dictionary a 1 b 2' ist ungültig.
Ich erkläre das Wörterbuch im Abschnitt "Variablen" wie diese:
${MYDICT}= Create Dictionary COUNTRY US CURRENCY_CODE USD
Testfall ist:
testCase1 run the test using ${MYDICT}
und die test-Schlüsselwörter werden wie folgt definiert:
run the test using ${MAP}
call java method ${MAP}
und die Java-Methode ist:
public void CallJavaMethod(Map<String, String> map)
Allerdings, wenn ich erkläre das Wörterbuch in der Test-keywords Abschnitt, alles funktioniert gut und die Java-Methode aufgerufen wird:
run the test using
${MYDICT}= Create Dictionary COUNTRY US CURRENCY_CODE USD
call java method ${MYDICT}
Verstehe ich nicht, warum ich erklären muß, das Wörterbuch an dem Punkt, wo ich es verwenden möchte. Was ist, wenn ich laufen will, dass der test-case mit unterschiedlichen Eingängen?
Fix ( verwendet was für @Uri und @Brian vorgeschlagen)
Ich versuche es mal mit der "Set Suite-Variablen" wie in diesem Beispiel:
*** Settings ***
Library Collections
Suite Setup Initialize dictionary
*** Keywords ***
Initialize dictionary
${dict}= Create Dictionary COUNTRY US
Set Suite Variable ${dict}
*** Test cases ***
testDict
Dictionary should contain item ${dict} COUNTRY US
Und den test erfolgreich passiert hat.
- Es ist kein Wörterbuch in java. Verwenden Sie hash-map
- Ja ich weiß das. Allerdings weiß ich nicht wie übergeben Sie eine Karte, um die java-test-Fall. Ich weiß nicht, wie man es in der tsv-Datei. JRobot ist in python und es hat Wörterbücher als Schlüssel-Wert-paar Container.
- Ist Testfall eine Methode ?
- Ja, es ist eine Methode, und es hat eine java.util.Karte argument
- Ich aktualisiert meine Antwort. Das problem (oder ein problem) ist, dass Sie nicht nennen Schlüsselwörtern in der Variablen-Tabelle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist das problem. Sie können nicht rufen Sie Schlüsselwörter wie das in der variable Abschnitt. Die Variablen-Tabelle für die Definition statischer Werte.
Aus dem robot framework Benutzerhandbuch Abschnitt auf variable Tabellen:
Wenn Sie möchten, um ein Wörterbuch zu erstellen, die verwendet werden können in mehreren tests, erstellen Sie ein Stichwort ein und nutzen die Set Suite-Variable Schlüsselwort zur Verfügung zu stellen, die überall in der suite. Aufrufen können Sie dieses Schlüsselwort aus einer Suite Setup. Oder erstellen Sie es in einer Variablen-Datei.
Beispiel
Im folgenden Beispiel wird ein suite-level-variable mit dem Namen
${dict}
enthält zwei Schlüssel. Das Wörterbuch ist initialisiert, die in einer suite setup. Es gibt zwei einfache tests, um zu überprüfen, dass das Wörterbuch wurde ordnungsgemäß eingerichtet und ist zugänglich für beide tests.Wo hast du die gerade festlegen?
Aus der Fehlermeldung sieht es aus wie die Linie definiert ist, nicht innerhalb einer keyword /test.
Anstatt wie es aussieht ist es definiert in der Variablen Bereich einer Ressource-Datei, oder in eine variable Datei.
Können Sie ein Schlüsselwort in das Variablen Abschnitt.
Stattdessen, wenn Sie möchten, dass die variable für alle die tests, sollten Sie definieren die variable in der suite-setup-Abschnitt als einen Anzug variable
Den Fehler, dass du (keine keyword-LAND) scheint zu sagen, dass Sie eine zusätzliche CRLF (enter), wo es sollte nicht sein.
Erstellen Wörterbuch Schlüsselwort ist deifned in der gleichen Zeile und stellen Sie sicher, dass Sie doppelte Leerzeichen (manchmal eine einzelne Registerkarte als ein einziges Leerzeichen anstatt einer Doppel-eins)