Python에서 동적(매개변수화된) 단위 테스트를 생성하는 방법
소개
테스트 시 복잡한 함수를 사용하려면 약간 다른 입력을 사용하여 여러 테스트 사례를 만들어야 하는 경우가 많습니다. 각 테스트 케이스를 수동으로 생성하는 것은 지루하고 오류가 발생하기 쉽습니다. 여기서 매개변수화된 테스트가 시작됩니다.
매개변수화
매개변수화를 사용하면 단일 테스트 사례를 정의하고 매개변수 값 목록을 제공하여 각각에 대해 테스트를 실행할 수 있습니다. 매개변수 세트. 이 접근 방식은 테스트 케이스 생성을 자동화하고 가능한 모든 입력이 테스트되도록 보장합니다.
pytest의 매개변수 사용
pytest는 편리한 데코레이터인 @pytest.mark.parametrize를 제공합니다. 테스트 기능을 매개변수화합니다. 튜플 또는 사전 목록을 인수로 사용하며, 각각은 매개변수 값 세트를 나타냅니다.
import pytest test_data = [ ("foo", "a", "a"), ("bar", "a", "b"), ("lee", "b", "b"), ] @pytest.mark.parametrize("name, a, b", test_data) def test_sequence(name, a, b): assert a == b
이 코드는 test_data의 각 매개변수 세트에 대해 하나씩 세 가지 테스트를 생성합니다. 테스트 이름은 매개변수 값에 따라 자동으로 생성됩니다.
매개변수화된 패키지 사용
매개변수화된 패키지는 매개변수화를 위한 보다 유연한 인터페이스를 제공합니다. 이를 통해 일련의 테스트 사례를 반환하는 생성기 함수를 정의할 수 있습니다.
from parameterized import parameterized test_data = [ ("foo", "a", "a"), ("bar", "a", "b"), ("lee", "b", "b"), ] @parameterized.expand(test_data) def test_sequence(name, a, b): assert a == b
다시 이 코드는 test_data의 각 매개변수 세트에 대해 하나씩 세 개의 테스트를 생성합니다. 테스트 이름은 자동으로 생성됩니다.
이점
매개변수화된 테스트를 사용하면 여러 가지 이점이 있습니다.
위 내용은 Python에서 매개변수화된 단위 테스트를 효율적으로 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!