소위 단위 테스트는 모듈, 함수 또는 클래스의 정확성을 테스트하는 테스트 유형입니다.
테스트 중심 개발 방식을 테스트 중심 개발이라고 합니다. 이 개발 모델은 단순한 테스트가 아니라 요구 사항을 분해하고 코드 품질을 보장하는 방법입니다.
단위 테스트는 테스트 중에 기능, 모듈 또는 클래스가 우리의 요구 사항을 충족하는지 확인할 뿐만 아니라 동시에 이는 나중에 클래스나 함수를 수정하는 데에도 도움이 됩니다. 수정 사항이 함수에 영향을 미치지 않는지 확인하기 위해 단위 테스트만 다시 실행하면 됩니다.
물론 단위 테스트를 하면 코드의 양도 크게 늘어납니다.
단위 테스트 코드를 작성하려면 Python의 단위 테스트 패키지를 도입해야 합니다. 새로운 단위 테스트 클래스를 생성할 수 있지만 이 클래스는 unitest.TestCase 클래스를 상속해야 합니다. 테스트 클래스의 테스트 메소드는 test로 시작해야 합니다. 그렇지 않으면 실행되지 않습니다. 그런 다음 unitest.TestCase의 메서드를 사용할 수 있습니다. 일반적으로 사용되는 방법은 다음과 같습니다.
assertEqual(self, first, second) #기대값인지 판단
assertTrue(bool) #참인지 판단
assertRaises(예외) #참인지 거짓인지 판단 특정 예외를 발생시킵니다.
예를 들어보겠습니다.
먼저 클래스 사용자 정의 클래스를 정의한 다음 단위 테스트를 수행합니다.
Dict.py
class Dict(dict): def __init__(self, **kwargs): super(Dict, self).__init__(**kwargs) def __getattr__(self, item): try: return self[item] except KeyError: raise AttributeError def __setattr__(self, key, value): self[key] = value import unittest from Dict import Dictclass DictTest(unittest.TestCase): def test_init(self): d = Dict(a=100, b=200) self.assertEqual(d.a, 100) self.assertEqual(d.b, 200) self.assertTrue(isinstance(d, dict)) def test_key(self): d = Dict() d['key'] = "300" self.assertEqual(d["key"], "300") def test_attar(self): d = Dict() d.attar = "attar" self.assertTrue("attar" in d) self.assertEqual(d.attar, "attar") def test_keyError(self): d = Dict() with self.assertRaises(KeyError): value = d["NotExisted"] def test_attarError(self): d = Dict() with self.assertRaises(AttributeError): value = d.not_existed if __name__ == '__main__': unittest.main()
dict의 하위 클래스를 정의했기 때문에 해당 키와 값을 동시에 테스트해야 합니다. 클래스이므로 해당 속성도 테스트해야 합니다.
우리가 정의한 unittest.TestCase 하위 클래스는 일반 Python 파일처럼 실행하기 전에
if __name__ == '__main__': unittest.main()
라는 두 문장을 작성해야 합니다.
또한 다음과 같은 방법으로 여러 테스트를 실행할 수도 있습니다
python -munittest DictTest
setUp 및 TearDown 함수.
setUp 및 TearDown 함수는 두 가지 특수 함수입니다. setUp은 모든 단위 테스트가 시작되기 전에 실행되고, teeDown 함수는 모든 단위 테스트가 실행된 후에 실행됩니다. 이 두 함수의 주요 애플리케이션 시나리오는 다음과 같습니다. 예를 들어 데이터베이스에 연결해야 할 때 setUp 함수에서 연결을 시작하고 TearDown 함수에서 연결을 닫을 수 있습니다.
위는 Python 학습 노트 - 유닛 테스트, UnitTest 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!