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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top