Domanda

Una funzione che mi piace molto con Pyttest è pytest.fixture che consente l'iniezione di dipendenza.Ad esempio, posso avere un dispositivo iniettando una nuova stringa casuale silly_string in qualsiasi funzione che necessita di:

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
.

esempio escogitato, ovviamente.

Non sono a conoscenza di alcuna funzionalità equivalente all'interno del quadro robot.Attualmente, creo una nuova variabile utilizzando una parola chiave, quindi passa la variabile come parametro.Sarebbe bello avere il parametro automaticamente iniettato.

Esiste un meccanismo all'interno del quadro del robot per eseguire analogamente l'iniezione di dipendenza?

È stato utile?

Soluzione

No, non c'è nulla di integrato per il robot per fare ciò che vuoi.

Se ciò che sai è stringhe generato in runtime, puoi sfruttare il robot Sintassi variabile estesa .Ad esempio, se si dispone di un ${v} variabile robot che contiene un riferimento a un oggetto Python, puoi fare qualcosa del genere:

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

Quanto sopra chiamerà il metodo silly_string sull'oggetto indicato da ${v}.La parola chiave Get reference to v sarebbe una parola chiave basata su Python che scrivi che restituisce un oggetto con il metodo silly_string.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top