.
.
.
.
.
.
.
파이썬으로 첫 번째 실패하는 테스트를 작성하는 방법을 설명드리겠습니다. 파이썬에서는 일반적으로 unittest 또는 pytest와 같은 테스트 프레임워크를 사용하여 TDD를 수행합니다. 여기서는 unittest를 사용한 예제를 설명드리겠습니다.
예시: 로그인 기능
요구 사항:
- 사용자가 올바른 사용자명과 비밀번호로 로그인할 수 있어야 한다.
테스트 케이스 정의:
- test_login_with_valid_credentials: 유효한 사용자명과 비밀번호로 로그인 시도를 테스트.
실패하는 테스트 작성 (레드):
- 프로젝트 구조:
-
코드 복사project/ ├── auth_service.py └── test_auth_service.py
- 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()
테스트 실행:
- 터미널에서 테스트를 실행합니다.
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()
이로써 파이썬으로 첫 번째 실패하는 테스트를 작성했습니다. 다음 단계는 "그린" 단계에서 이 테스트를 통과하도록 코드를 작성하는 것입니다.