본문 바로가기

카테고리 없음

파이썬

. . . . . . .

파이썬으로 첫 번째 실패하는 테스트를 작성하는 방법을 설명드리겠습니다. 파이썬에서는 일반적으로 unittest 또는 pytest와 같은 테스트 프레임워크를 사용하여 TDD를 수행합니다. 여기서는 unittest를 사용한 예제를 설명드리겠습니다.

예시: 로그인 기능

요구 사항:

  • 사용자가 올바른 사용자명과 비밀번호로 로그인할 수 있어야 한다.

테스트 케이스 정의:

  • test_login_with_valid_credentials: 유효한 사용자명과 비밀번호로 로그인 시도를 테스트.

실패하는 테스트 작성 (레드):

  1. 프로젝트 구조:
  2. 코드 복사
    project/ ├── auth_service.py └── test_auth_service.py
  3. auth_service.py: 로그인 기능을 제공하는 서비스 파일입니다.
  4. python
    코드 복사
    class AuthService: def login(self, username, password): # 현재는 아무런 구현도 되어 있지 않아서 항상 False를 반환합니다. return False
  5. test_auth_service.py: 테스트 파일입니다.
  6. python
    코드 복사
    import unittest from auth_service import AuthService class TestAuthService(unittest.TestCase): def test_login_with_valid_credentials(self): # Arrange: 유효한 사용자명과 비밀번호를 가진 사용자 생성 valid_username = "validUser" valid_password = "validPassword" # Arrange: AuthService 인스턴스 생성 auth_service = AuthService() # Act: 로그인 시도 result = auth_service.login(valid_username, valid_password) # Assert: 로그인 성공 여부 확인 self.assertTrue(result) # 이 테스트는 현재 코드에서는 실패해야 합니다. if __name__ == '__main__': unittest.main()

테스트 실행:

  1. 터미널에서 테스트를 실행합니다.
    bash
    코드 복사
    python -m unittest test_auth_service.py

예상 결과:

테스트를 실행하면 test_login_with_valid_credentials 테스트가 실패할 것입니다. 실패 이유는 AuthService 클래스의 login 메서드가 아직 구현되지 않았기 때문입니다.

전체 코드 요약:

auth_service.py:

python
코드 복사
class AuthService: def login(self, username, password): # 현재는 아무런 구현도 되어 있지 않아서 항상 False를 반환합니다. return False

test_auth_service.py:

python
코드 복사
import unittest from auth_service import AuthService class TestAuthService(unittest.TestCase): def test_login_with_valid_credentials(self): # Arrange: 유효한 사용자명과 비밀번호를 가진 사용자 생성 valid_username = "validUser" valid_password = "validPassword" # Arrange: AuthService 인스턴스 생성 auth_service = AuthService() # Act: 로그인 시도 result = auth_service.login(valid_username, valid_password) # Assert: 로그인 성공 여부 확인 self.assertTrue(result) # 이 테스트는 현재 코드에서는 실패해야 합니다. if __name__ == '__main__': unittest.main()

이로써 파이썬으로 첫 번째 실패하는 테스트를 작성했습니다. 다음 단계는 "그린" 단계에서 이 테스트를 통과하도록 코드를 작성하는 것입니다.