단위 테스트
지금까지 우리는 코드가 정상적으로 동작하는지 확인하기 위해 코드 전체를 실행하거나 직접 함수를 호출하며 오류가 발생하는지 확인해야 했습니다. 코드의 양이 작은 경우에는 크게 문제가 없을 수도 있지만, 복잡해질수록 수동으로 테스트하는데 시간이 오래 걸리고 빠뜨릴 수 있는 부분이 생길 수 있습니다.
단위 테스트(및 유닛 테스트)는 코드의 일부분을 독립적으로 실행시켜 정상적으로 동작하는 지 검증하는 테스트입니다.
함수마다 테스트 케이스를 만들어, 값을 입력한 후 예상되는 실행결과가 반환되는 지 알려줍니다.
새 Colab 노트북을 만들어 직접 살펴봅시다.
def add(a, b):
return a + b
def test_add():
assert add(3, 5) == 8
assert
는 영단어로 '주장' 이라는 뜻을 가지고 있습니다. 가정 설정문이라고도 불리는데, assert 뒤에 따라오는 코드가 True
가 아니라면 AssesertionError
를 발생시킵니다.
여기서는 3 더하기 5가 8인지 동등 연산자(==
)로 비교해 맞다면 True
를 반환하기 때문에 오류 없이 정상적으로 실행되어야 합니다.
test_add()
print("테스트 성공")
<aside> 🔨 전체 코드 실행: Runtime -> Run all
</aside>
이렇게 단위 테스트를 작성하면 코드의 문제점을 빠르게 발견할 수 있습니다. 코드를 리팩토링하거나 새로운 부분을 추가하더라도 테스트만 돌리면 작동 여부를 확인할 수 있기 때문에 디버깅이 쉬워집니다.
그러나 아직 덧셈 함수를 위한 모든 테스트를 적지 않았습니다. 테스트가 효과적이기 위해서는 다양한 케이스를 시험해보아야 합니다. 지금 막 작성한 테스트는 두 개의 인자가 모두 양수인 정수일 때만 테스트했기 때문에 다른 자료형을 전달했을 때도 작동하는지 확인해 봅시다.
새로운 블록을 생성하고 소수점이 있는 float형 숫자와 정수를 더해서 테스트하는 케이스를 작성해 봅시다.