파이썬의 unittest 단위 테스트 프레임워크는 테스트 결과를 TestResult 개체로 확인할 수 있다. TestResult 객체는 TestRunner.run() 메서드에 의해 반환된다. 보통 테스트를 실행하면 콘솔을 통해서 테스트 결과가 출력된다. 만일 테스트 결과를 얻어서 처리하고 싶다면 TestResult를 사용하면 된다. # 테스트 실행 코드 다음은 이번 포스트에서 사용할 테스트 실행 코드이다. import unittest class TestCase(unittest.TestCase): def test_method1(self): print("test_method1") self.assertTrue(True) def test_method2(self): print("test_method2") self..
파이썬 unittest 단위 테스트 프레임워크는 클래스와 모듈에서 테스트 스위트를 만드는 데 사용되는 TestLoader 클래스가 있다. 기본적으로 unittest.defaultTestLoader 인스턴스는 unittest.main() 메서드가 호출될 때 자동으로 생성된다. 그러나 명시적 테스트 인스턴스를 사용하면 특정 속성을 사용자 정의할 수 있다. # 예제로 사용할 테스트 케이스 정의하기 import unittest class TestCase1(unittest.TestCase): def test_testcase1_1(self): print("test_testcase1_1") self.assertTrue(True) def test_testcase1_2(self): print("test_testcase1..
파이썬 unittest 단위 테스트 프레임워크는 테스트를 건너뛸 수 있는 기능을 제공한다. # 테스트를 건너뛰는 방법 unittest는 다양한 방법으로 테스트를 건너뛰게 만들 수 있다. skip 데코레이터 사용하기 skipTest 호출하기 사용자 정의 건너뛰기 데코레이터를 만들어 사용하기 # skip 데코레이터 사용하기 unittest는 테스트를 건너뛰기 위해 다양한 skip 데코레이터를 제공한다. @unittest.skip(resaon) : 조건 없이 데코레이트된 테스트를 건너뛴다. @unittest.skipIf(condition, resaon) : 조건이 참이면, 데코레이트된 테스트를 건너뛴다. @unittest.skipUnless(condition, reason) : 조건이 참이 아니면, 데코레이트..
파이썬 unittest 단위 테스트 프레임 워크는 기존에 작성했던 테스트 함수를 수정하지 않고 unittest로 실행할 수 있도록 지원한다. # 테스트 함수 예제 만일 unittest를 사용하기 전에 다음과 같은 테스트 함수를 만들었다고 가정해 보자. def testSomething(): something = makeSomething() assert something.name is not None # ... # 테스트 함수를 unittest에 추가하기 테스트 함수를 unittest에 추가하려면 unittest의 FunctionTestCase를 사용하면 된다. import unittest def testSomething(): name = 1 # ... assert name is not None if __n..
파이썬의 unittest 단위 프레임 워크는 테스트 스위트(test suite)를 제공한다. 보통 테스트 케이스를 실행하면, 해당 테스트 케이스의 모든 테스트 메서드를 실행한다. 하지만 테스트 스위트는 테스트하려는 기능에 따라 원하는 테스트들을 모아서 실행할 수 있게 된다. 테스트 스위트는 다음과 같은 항목을 같이 묶을 수 있다. 테스트 메서드 테스트 스위트 테스트 케이스 # 테스트 스위트에서 사용할 테스트 케이스 테스트 스위트에 사용할 테스트 케이스는 다음과 같다. import unittest class TestCase1(unittest.TestCase): def test_testcase1_1(self): print("test_testcase1_1") self.assertTrue(True) def te..
파이썬에서 테스트 주도 개발(TDD)을 적용하기 위해 unittest 단위 테스트 프레임워크를 사용해 보자. # 테스트 케이스 단위 테스트의 기본은 unittest.TestCase를 상속한 테스트 케이스 클래스가 된다. 이를 테스트 케이스라고 한다. 테스트 케이스는 각 테스트 메서드에 동일하게 필요한 준비(setUp)와 그와 관련된 정리 동작(tearDown)을 정의한 텍스트 픽스처를 가질 수 있다. 테스트 케이스는 특정 테스트 코드를 수행하는 이름이 test로 시작하는 테스트 메서드를 가진다. 그리고 테스트 메서드는 1개 이상의 assert 메서드를 가져야 한다. 테스트가 실패한다면 그 이유를 설명한 메시지가 포함된 예외가 발생한다. 다음은 테스트 케이스를 설명하기 위한 간단한 예제 코드가 된다. im..
파이썬에서 테스트 주도 개발(TDD)을 적용하기 위해서 unittest 단위 테스트 프레임워크를 사용해 보자. # unittest는? unittest 프레임워크는 자바의 JUnit으로부터 영감을 받아 다른 언어의 주요 단위 테스트 프레임워크와 비슷한 특징을 가지고 있다. niitest는 파이썬을 설치 시 내장되어 있기 때문에 바로 사용할 수 있다는 장점도 있다. # unittest 중요한 개념 ## 텍스트 픽스처 (test fixture) 텍스트 픽스처는 1개 또는 그 이상의 테스트를 수행할 때 필요한 준비와 그와 관련된 정리 동작에 해당한다. setUp(), tearDown(), setUpClass(), tearDownClass()가 여기에 해당한다. ## 테스트 케이스 (test case) 테스트 케..
# 테스트 주도 개발 테스트 주도 개발(Test-Driven Development, TDD)은 소프트웨어 개발 방법론 중 하나이다. 보통 개발 프로세스는 개발이 이루어진 다음 그것이 계획대로 잘 완성되었는지 테스트 케이스를 작성하고 테스트를 진행한다. 하지만 테스트 주도 개발은 테스트를 먼저 작성한 후 코드를 작성한다. # TDD 개발 순서 테스트 주도 개발은 아래의 과정을 계속 반복한다. 1. 실패하는 테스트 케이스를 먼저 작성한다. 2. 테스트 케이스를 통과하는 코드 작성한다. 3. 작성한 코드에서 중복 코드를 제거하는 등의 리팩터링 한다. # TDD의 장점 1. 객체 지향적인 코드 생산 2. 재설계 시간의 단축 3. 디버깅 시간의 단축 4. 테스트 문서의 대체 가능 5. 추가 구현의 용의 함 # T..