Frage

Eine Funktion, die mir bei Pytest sehr gut gefällt, ist pytest.fixture was eine Abhängigkeitsinjektion ermöglicht.Als Beispiel kann ich ein Gerät haben, das eine neue Zufallszeichenfolge einspeist silly_string in jede Funktion, die es benötigt:

conftest.py:

@pytest.fixture(scope='function')
def silly_string(request):
    return ''.join(random.choice(string.ascii_lowercase) for _ in range(5))

test_strings.py

def test_string_length(self, silly_string)
    assert len(silly_string) == 5

Offensichtlich ein erfundenes Beispiel.

Mir ist keine entsprechende Funktionalität im Robot Framework bekannt.Derzeit erstelle ich eine neue Variable mit einem Schlüsselwort und übergebe diese Variable dann als Parameter.Es wäre schön, wenn der Parameter automatisch eingefügt würde.

Gibt es im Robot Framework einen Mechanismus, um die Abhängigkeitsinjektion auf ähnliche Weise durchzuführen?

War es hilfreich?

Lösung

Nein, der Roboter hat nichts eingebaut, was Sie tun könnten.

Wenn Sie nach zur Laufzeit generierten Zeichenfolgen suchen, können Sie Roboter nutzen erweiterte Variablensyntax.Zum Beispiel, wenn Sie eine Robotervariable haben ${v} das einen Verweis auf ein Python-Objekt enthält, können Sie etwa Folgendes tun:

| | ${v}= | Get reference to v
| | log | Hello ${v.silly_string()}`

Das oben genannte wird aufgerufen silly_string Methode für das Objekt, auf das gezeigt wird ${v}.Das Schlüsselwort Get reference to v wäre ein von Ihnen geschriebenes Python-basiertes Schlüsselwort, das ein Objekt mit zurückgibt silly_string Methode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top