[python] 파이썬 웹 개발에서의 테스트 주도 개발(TDD)

소개

테스트 주도 개발(Test-Driven Development, TDD)은 소프트웨어 개발 방법론 중의 하나로, 개발자가 코드를 작성하기 전에 테스트를 먼저 작성하는 방식입니다. 이를 통해 개발자는 코드의 동작을 명확히 이해하고, 코드를 안정적이고 효율적으로 작성할 수 있습니다.

이번에는 파이썬 웹 개발에서 TDD를 활용하는 방법에 대해 알아보겠습니다.

TDD의 기본 원칙

TDD는 아래의 세 가지 주요 단계로 구성됩니다.

  1. 테스트 작성: 코드의 동작을 검증하는 테스트 케이스를 작성합니다.
  2. 테스트 실행: 작성한 테스트 케이스를 실행하여 실패하는 것을 확인합니다.
  3. 코드 작성: 테스트를 통과하기 위한 최소한의 코드를 작성합니다.

위의 세 가지 단계를 반복하며 점진적으로 코드를 발전시키는 것이 TDD의 핵심입니다.

Flask를 사용한 예시

Flask는 파이썬으로 웹 어플리케이션을 개발할 수 있는 경량 프레임워크입니다. 이를 통해 TDD를 적용해보도록 하겠습니다.

1. Flask 설치

먼저 Flask를 설치합니다.

pip install flask

2. 테스트 프레임워크 설정

pytest를 테스트 프레임워크로 사용하여 테스트 주도 개발을 진행해보겠습니다. pytest를 설치합니다.

pip install pytest

3. 테스트 파일 작성

tests 디렉토리를 생성하고 내부에 테스트 파일을 작성합니다.

# tests/test_app.py

from app import app

def test_home():
    client = app.test_client()
    response = client.get('/')
    assert response.status_code == 200
    assert b"Hello, world!" in response.data

위의 예시는 ‘/’ 경로로 요청을 보냈을 때 “Hello, world!”가 포함된 응답을 받는지를 테스트하는 코드입니다.

4. 애플리케이션 코드 작성

app.py 파일을 생성하고 아래의 코드를 작성합니다.

# app.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, world!"

if __name__ == '__main__':
    app.run()

5. 테스트 실행

터미널에서 테스트를 실행합니다.

pytest

테스트가 성공하면 모든 테스트 케이스가 통과한 것입니다. 실패할 경우, 해당하는 코드를 수정하여 테스트를 통과시킬 수 있습니다.

마무리

테스트 주도 개발은 안정적이고 효율적인 코드 개발을 위한 중요한 방법론입니다. 이를 활용하여 파이썬 웹 어플리케이션을 개발할 때 테스트를 우선적으로 작성해보세요. 이를 통해 코드의 품질을 향상시킬 수 있을 것입니다.

참고 자료