이 튜토리얼에서는 단위 테스트에 대해 알아볼 것입니다. unittest 사용 내장 모듈. 테스트는 소프트웨어 개발에서 중요한 역할을 합니다. 프로덕션 자체로 이동하기 전에 문제를 알 수 있습니다.
unittest라는 내장 모듈을 사용하여 Python에서 테스트하는 기본 사항을 배웁니다. . 튜토리얼을 시작하겠습니다.
단위 테스트란 무엇입니까?
로그인 시스템을 예로 들면. 로그인 양식의 각 필드는 단위/구성 요소입니다. 그리고 이러한 단위/구성요소 기능을 테스트하는 것을 단위 테스트라고 합니다.
예시
unittest 프레임워크의 기본 구조를 살펴보자.
# importing unittest module import unittest # unittest will test all the methods whose name starts with 'test' class SampleTest(unittest.TestCase): # return True or False def test(self): self.assertTrue(True) # running the test unittest.main()
출력
위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
---------------------------------------------------------------------- Ran 1 test in 0.001s OK
2.문자열 메서드 테스트
이제 샘플 테스트 케이스를 사용하여 다양한 문자열 메서드를 테스트할 것입니다. 메소드 이름은 test.로 시작해야 합니다.
우리가 작성할 각 메소드에 대한 간략한 소개를 살펴보겠습니다.
-
test_string_equality
-
이 메서드는 assertEqaul을 사용하여 두 문자열이 같은지 여부를 테스트합니다. unittest.TestCase. 메소드
-
-
test_string_case
-
이 메서드는 assertEqaul을 사용하여 두 문자열 케이스가 동일한지 여부를 테스트합니다. unittest.TestCase. 메소드
-
-
test_is_string_upper
-
이 메소드는 assertTrue를 사용하여 문자열이 대문자인지 여부를 테스트합니다. 및 assertFalse unittest.TestCase 메소드 .
-
예시
# importing unittest module import unittest class TestingStringMethods(unittest.TestCase): # string equal def test_string_equality(self): # if both arguments are equal then it's succes self.assertEqual('ttp' * 5, 'ttpttpttpttpttp') # comparing the two strings def test_string_case(self): # if both arguments are equal then it's succes self.assertEqual('tutorialspoint'.upper(), 'TUTORIALSPOINT') # checking whether a string is upper or not def test_is_string_upper(self): # used to check whether the statement is True or False # the result of expression inside the **assertTrue** must be True to pass the test case # the result of expression inside the **assertFalse** must be False to pass the test case self.assertTrue('TUTORIALSPOINT'.isupper()) self.assertFalse('TUTORIALSpoint'.isupper()) # running the tests unittest.main()
출력
위의 코드를 실행하면 모든 테스트 케이스를 통과하면 다음과 같은 결과를 얻을 수 있습니다.
... ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK
예시
다음 프로그램을 실행하여 실패한 테스트 케이스 출력을 확인하세요.
# importing unittest module import unittest class TestingStringMethods(unittest.TestCase): # string equal def test_string_equality(self): # if both arguments are equal then it's succes self.assertEqual('ttp' * 5, 'ttpttpttpttpttp') # comparing the two strings def test_string_case(self): # if both arguments are equal then it's succes self.assertEqual('tutorialspoint'.upper(), 'TUTORIALSPOINT') # checking whether a string is upper or not def test_is_string_upper(self): # used to check whether the statement is True or False # the result of expression inside the **assertTrue** must be True to pass the test case # the result of expression inside the **assertFalse** must be False to pass the test case self.assertTrue('TUTORIALSPOINT'.isupper()) self.assertFalse('TUTORIALSpoint'.isupper()) # running the tests unittest.main()
출력
위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
====================================================================== FAIL: test_is_string_upper (__main__.TestingStringMethods) ---------------------------------------------------------------------- Traceback (most recent call last): File "p:/Python Work/Stopwatch/practice.py", line 21, in test_is_string_upper self.assertTrue('TUTORIALSPOINt'.isupper()) AssertionError: False is not true ---------------------------------------------------------------------- Ran 3 tests in 0.016s FAILED (failures=1)
전체 테스트 케이스 중 하나의 테스트 케이스가 실패해도 실패 메시지를 표시합니다.
결론
튜토리얼에 의문점이 있으면 댓글 섹션에 언급하세요.