개발자나 프로그래머로서 코드를 작성할 때마다 일반적으로 한 가지 간과되는 것이 바로 테스트입니다. 테스트는 개발의 일부이므로 애플리케이션이 필요한 기능을 충족하는지 확인하기 위해 애플리케이션을 엄격하게 테스트해야 합니다.
테스트 케이스는 미리 작성되므로 더 이상 수동 테스트를 수행할 실제 이유가 없습니다. 대부분의 경우, 특히 대규모 응용 프로그램의 경우 기능이 작동하는지 테스트하려면 소프트웨어에서 여러 단계를 실행해야 합니다. 이는 테스트를 통해 방지할 수 있습니다. 애플리케이션을 실행할 때마다 특정 입력을 사용해야 한다고 상상해 보세요. 테스트를 사용하면 실행될 때마다 자동으로 입력됩니다.
개발 전에 테스트 사례를 만드는 것이 좋습니다. 이는 개발을 시작하기 전에 시스템 전체에 대해 생각하게 만듭니다.
코딩하는 동안 함수 구현이 변경될 수 있지만 출력은 동일하게 유지됩니다. 구현이 변경될 때 함수를 수동으로 테스트하는 대신 여러 테스트 사례를 한 번에 실행할 수 있는 특정 테스트 사례를 간단히 구현할 수 있습니다.
우리는 특정 테스트 유형인 단위 테스트에 중점을 둘 것입니다. 이 특정 유형의 테스트는 함수나 클래스와 같은 작은 단위의 코드를 테스트하는 데 사용됩니다.
단위 테스트를 생성하기 위해 Python 표준 라이브러리인 단위 테스트를 사용합니다. 테스트 케이스를 생성하는 방법은 모든 테스트 케이스를 포함하는 클래스를 생성하여 OOP(객체 지향 프로그래밍)를 사용합니다. 이를 통해 클래스의 모든 테스트 사례를 한 번에 실행할 수 있습니다.
참고: 익숙한 IDE 또는 텍스트 편집기를 사용할 수 있습니다(기본 Python IDE 사용 가능). 이를 위해 Python 확장과 함께 Visual Studio Code를 사용하는 방법을 보여 드리겠습니다.
먼저 단위 테스트 라이브러리를 가져옵니다.
import unittest
이제 클래스 선언을 만듭니다.
class TestingClass(unittest.TestCase):
참고(unittest.TestCase)는 Python에서 상속입니다. 클래스에 기능을 제공합니다.
클래스에 첫 번째 함수 추가:
self.assertEqual은 이전에 상속된 클래스(unittest.TestCase)에서 제공하는 메서드입니다. 이 방법은 두 변수가 동일한 값을 갖는지 여부를 테스트합니다.
테스트 실행기를 추가하세요. 이것이 단위 테스트를 실행하게 하는 것입니다:
unittest.main()
완성된 코드는 다음과 같습니다:
위 코드는 9 + 1이 11인지 테스트하는 것을 보여줍니다. 기본적인 수학을 알고 있다면 9+1 = 10이라는 것을 알아야 합니다. 따라서 이 테스트 사례는 실패합니다.
출력:
짐작하셨을 것입니다. 실패!
해결책은 간단합니다. 코드를 다음과 같이 수정합니다.
test_var = 9 + 2
출력:
함수 외부 테스트의 경우 이전 예제는 현실적이지 않을 수 있습니다. test_var 값을 함수의 값으로 바꾸겠습니다. 파일 상단에 함수 선언을 추가하겠습니다.
이 함수는 두 개의 숫자를 더합니다. 9 + 2를 add(9,2) 함수 호출로 바꾸고 코드를 실행합니다.
지금까지 우리는 하나의 테스트 케이스만 구현했습니다. TestingClass의 각 함수/메서드(이 경우 둘 다 동일함)는 테스트 사례를 나타냅니다.
또 다른 테스트 케이스 test_multiple_num_addition을 추가해 보겠습니다.
참고: 생성된 모든 테스트 사례의 이름 앞에는 "test"라는 단어가 와야 합니다. 그렇지 않으면 테스트 실행기가 이를 인식하지 못합니다.
코드는 다음과 같아야 합니다:
실행:
함수 매개변수는 두 개의 매개변수만 허용하므로 이는 분명히 실패합니다. 하지만 정말로 숫자를 더 추가하고 싶다면 어떻게 해야 할까요?
추가 기능을 변경하면 이 문제를 해결할 수 있습니다.
값 매개변수 왼쪽에 있는 별표(*)에 유의하세요. 이를 통해 여러 매개변수를 입력할 수 있고 값을 튜플로 저장할 수 있습니다.
실행 전 코드:
실행:
실행 성공!
함수 매개변수의 변수 앞에 별표를 붙이는 것을 키워드가 아닌 매개변수라고 합니다.
테스트를 시도하면 코드가 더욱 강력해질 수 있습니다. 또한 개발 방식도 바뀔 수 있습니다. 테스트 사고방식을 가지면 프로덕션에서 버그가 줄어들고 개발 중에 반복적인 수동 테스트가 줄어듭니다.
*원본 링크: https://medium.com/swlh/python-testing-a8156d022eef
위 내용은 Python 테스트 | Python에서 단위 테스트 만들기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!