파이썬의 unittest 단위 테스트 프레임워크에서 자주 사용하는 assert 메서드에 대해서 알아보자. # 값 검사 메서드 TestCase 클래스는 값을 검사하고 실패를 보고하기 위해 assert 메서드를 제공한다. 모든 assert 메서드는 msg 인자를 추가로 받기 때문에 실패 시 출력 메시지를 전달할 수 있다. 메서드 검사하는 내용 추가된 버전 assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) x is True assertFalse(x) x is False assertIs(a, b) a is b 3.1 assertIsNot(a, b) a is not b 3.1 assertIsNone(x) x is None 3.1 assertIs..
파이썬 unittest 단위 테스트 프레임워크는 테스트 메서드 내부의 반복문에서 부분 테스트(subtest)를 사용할 수 있도록 지원한다. # 테스트 메서드의 반복문 예제 예를 들어 다음 테스트는 for문에 i가 짝수인지를 확인하는 테스트 코드가 있다. import unittest class NumbersTest(unittest.TestCase): def test_even(self): for i in range(0, 6): self.assertEqual(i % 2, 0) test_even (__main__.NumbersTest) ... FAIL ====================================================================== FAIL: test_even (__..
파이썬의 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..