Вопрос

Функция pytest, которая мне очень нравится: pytest.fixture который допускает внедрение зависимостей.В качестве примера я могу использовать приспособление, вводящее новую случайную строку. silly_string в любую функцию, которая в этом нуждается:

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

Надуманный пример, очевидно.

Мне не известны какие-либо аналогичные функции в Robot Framework.В настоящее время я создаю новую переменную, используя ключевое слово, а затем передаю эту переменную в качестве параметра.Было бы неплохо, если бы этот параметр вводился автоматически.

Существует ли в Robot Framework механизм для аналогичного внедрения зависимостей?

Это было полезно?

Решение

Нет, в роботе нет ничего встроенного, чтобы делать то, что вы хотите.

Если вам нужны строки, генерируемые во время выполнения, вы можете использовать расширенный синтаксис переменных.Например, если у вас есть переменная робота ${v} который содержит ссылку на объект Python, вы можете сделать что-то вроде этого:

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

Вышеупомянутое вызовет silly_string метод объекта, на который указывает ${v}.Ключевое слово Get reference to v будет написанное вами ключевое слово на основе Python, которое возвращает объект с silly_string метод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top