pytest parametrize

test code 작성할 때 동일 테스트 메서드를 반복하면서 특정 값만 바꿔가며 테스트하고 싶을 때가 있다. 그럴 때 pytest의 parametrize를 사용하면 반복을 줄일 수 있다.

@pytest.mark.parametrize("인자_이름_1, 인자_이름_2", [(인자_이름_1의_값, 인자_이름_2의_값)])

argnames : ,로 구분된 문자열에서 하나 이상의 이름을 나타내거나 문자열로 구성된 tuple, list 사용
argnames : 반드시 튜플 리스트([(),(),()])여야 한다. 튜플 안에는 argnames에 적은 인자에 맞게 값을 넣어야 한다

@pytest.mark.parametrize("user_count", [(0),(1),(10)])
def test_when_create_users_then_success(
    user_count,
    test_session,
    user_factory
):
    users = user_model_factory.build_batch(size=user_count)
    test_session.add_all(users)
    test_session.commit()
    
    users_result = Repo().get_users()
    
    assert len(users_result) == user_count

좋은 웹페이지 즐겨찾기