Рекомендации по повторному использованию тестов Py.Test

Предположим, я тестирую процесс взаимодействия с пользователем на сервере RESTful. Многие из моих тестов требуют, чтобы у меня был действительный пользователь в моей базе данных, и, конечно же, я хочу протестировать создание пользователя. Итак, в py.test я бы написал что-то вроде этого:

def test_user_creation():
    '''user creation goes here'''

def test_user_update_values():
    '''should create an user and validate the new values'''

Вопрос в том, как лучше всего повторно использовать процесс создания? Приспособление? вызвать первый тестовый пример и вернуть пользователя во второй? Или повторять все для каждого теста? Более поздняя альтернатива, хотя и более изолированная, может быть PITA, если вам нужно реорганизовать части кода, заставляющие вас изменять все тесты.


person scooterman    schedule 04.07.2015    source источник


Ответы (1)


Все сводится к предпочтениям, в этом случае я бы сказал, что светильники — ваш лучший выбор. Хотя вы также можете использовать параметризованные тесты:

Пример из: https://pytest.org/latest/example/parametrize.html

from datetime import datetime, timedelta

testdata = [(datetime(2001, 12, 12), datetime(2001, 12, 11), timedelta(1)),
            (datetime(2001, 12, 11), datetime(2001, 12, 12), timedelta(-1)),
            ]


@pytest.mark.parametrize("a,b,expected", testdata)
def test_timedistance_v0(a, b, expected):
    diff = a - b
    assert diff == expected
person Wolph    schedule 04.07.2015