Robô Quadro equivalente a pytest.fixação
-
21-12-2019 - |
Pergunta
Uma característica que eu gosto muito com pytest é pytest.fixação o que permite injeção de dependência.Como um exemplo, eu posso ter um dispositivo elétrico da injeção de uma nova cadeia de caracteres aleatória silly_string
em qualquer função que necessitem:
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
Exemplo forçado, obviamente.
Eu não estou ciente de qualquer funcionalidade equivalente, dentro do Robô Quadro.Atualmente, eu criar uma nova variável usando uma palavra-chave e, em seguida, passar essa variável como um parâmetro.Seria bom ter o parâmetro automaticamente injetado.
Existe um mecanismo de dentro do Robô Âmbito da mesma forma para realizar injeção de dependência?
Solução
Não, não há nada built-in para o robô para fazer o que você quer.
Se o que você está depois é seqüências de caracteres geradas em tempo de execução, você pode aproveitar de um robô estendida a sintaxe da variável.Por exemplo, se você tiver um robô variável ${v}
mantém uma referência para um objeto python, você pode fazer algo como isto:
| | ${v}= | Get reference to v
| | log | Hello ${v.silly_string()}`
Acima vai chamar o silly_string
o método sobre o objeto apontado pelo ${v}
.A palavra-chave Get reference to v
seria um python baseadas em palavras-chave que você escreve que retorna um objeto com o silly_string
o método.