Question

Une fonctionnalité que j'aime beaucoup avec pytest est pytest.luminaire qui permet l'injection de dépendance.Comme exemple, je peux avoir un appareil d'injecter une nouvelle chaîne de caractères aléatoires silly_string dans toute fonction qui en ont besoin:

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

Exemple artificiel, évidemment.

Je ne suis pas au courant de toutes les fonctionnalités équivalentes au sein de Robot Cadre.Actuellement, je crée une nouvelle variable à l'aide d'un mot-clé, puis passer cette variable en tant que paramètre.Il serait agréable d'avoir le paramètre automatiquement injecté.

Est-il un mécanisme à l'intérieur du Robot Cadre à même d'effectuer l'injection de dépendance?

Était-ce utile?

La solution

Non, il n'y a rien de construit-dans le robot pour faire ce que vous voulez.

Si ce que vous êtes après est les chaînes générées lors de l'exécution, vous pouvez tirer parti du robot étendue variable syntaxe.Par exemple, si vous avez un robot variable ${v} qui contient une référence à un objet python, vous pouvez faire quelque chose comme ceci:

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

Le ci-dessus qui fera appel à la silly_string méthode sur l'objet pointé par ${v}.Le mot-clé Get reference to v serait un python mots-clés que vous écrivez qui retourne un objet avec la silly_string la méthode.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top