티스토리 뷰

반응형

파이썬 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 __name__ == "__main__":
    testcase = unittest.FunctionTestCase(testSomething)
    unittest.main()

 

 

 

# 테스트 함수에 setUp과 tearDown 설정하기

FunctionTestCase는 추가로 setUp과 tearDown을 함께 설정할 수도 있다.

testcase = unittest.FunctionTestCase(
    testSomething,
    setUp=makeSomethingDB,
    tearDown=deleteSomethingDB
)

 

 

 

# 하지만...

하지만 unittest 공식문서에는 기존 테스트 함수를 FunctionTestCase를 사용해서 실행할 수는 있지만, 이 방법을 추천하지 않는다고 한다. 시간을 들여서 적절한 테스트 케이스로 만드는 것이 미래에 있을 리팩토링을 대단히 쉽게 만들어 준다고 한다. 그리고 테스트 함수에서 사용된 assert는 unittest에서는 정확한 테스트 내용을 확인할 수 없고, 단지 예외가 발생하는지만 확인할 뿐이다. 

반응형
댓글
공지사항