테스트 코드 구조 분석(행맨 테스트 코드 이용)
- test.py
# 필요한 모듈을 가져옵니다: 유닛 테스트를 위한 unittest 및 'app' 모듈(이름이 'hangman'으로 변경됨).
import unittest
import app as hangman
# Hangman 테스트 케이스를 위한 클래스를 정의하며, unittest.TestCase를 상속합니다.
class HangmanTestCase(unittest.TestCase):
# 'checkCorrectAnswer' 함수에 대한 테스트 케이스입니다.
def test_checkCorrectAnswer(self):
# 특정 매개변수로 'checkCorrectAnswer' 함수를 호출합니다.(아래 app.py 파일에 있음)
answer = hangman.checkCorrectAnswer("baon", "baboon")
# 결과가 True인지 확인하여 정확성을 기대합니다.
self.assertTrue(answer)
# 'checkWrongAnswer' 함수에 대한 테스트 케이스입니다.
def test_checkWrongAnswer(self):
# 특정 매개변수로 'checkWrongAnswer' 함수를 호출합니다. (아래 app.py 파일에 있음)
answer = hangman.checkWrongAnswer("zebrio", "zebra")
# 결과가 True인지 확인하여 잘못된 답을 기대합니다.
self.assertTrue(answer)
# 'checkCorrectAnswer'에 대한 추가 테스트 케이스 1입니다.
def test_1(self):
# 특정 매개변수로 'checkCorrectAnswer' 함수를 호출합니다.
answer = hangman.checkCorrectAnswer("bazn", "baboon")
# 결과가 False인지 확인하여 잘못된 추측을 기대합니다.
self.assertFalse(answer)
# 'checkCorrectAnswer'에 대한 추가 테스트 케이스 2입니다.
def test_2(self):
# 빈 문자열과 공백을 매개변수로 'checkCorrectAnswer' 함수를 호출합니다.
answer = hangman.checkCorrectAnswer("", " ")
# 결과가 False인지 확인하여 빈 문자열이 올바른 추측이 아님을 기대합니다.
self.assertFalse(answer)
# 'checkCorrectAnswer'에 대한 추가 테스트 케이스 3입니다.
def test_3(self):
# 대문자를 사용하여 'checkCorrectAnswer' 함수를 호출합니다.
answer = hangman.checkCorrectAnswer("ZEBRA", "zebra")
# 결과가 False인지 확인하여 대소문자 구분 비교를 기대합니다.
self.assertFalse(answer)
# 스크립트가 직접 실행되는지 확인하고 유닛 테스트를 실행합니다.
if __name__ == "__main__":
unittest.main() - app.py
(중략)
# 플레이어가 이겼는지 확인
def checkCorrectAnswer(correctLetters, secretWord):
# 모든 글자가 올바르게 추측되었는지 여부를 나타내는 변수
foundAllLetters = True
# 비밀 단어의 각 글자에 대해 반복
for i in range(len(secretWord)):
# 만약 비밀 단어의 현재 글자가 올바르게 추측된 글자에 포함되어 있지 않다면
if secretWord[i] not in correctLetters:
# foundAllLetters를 False로 설정하고 반복 중지
foundAllLetters = False
break
# 모든 글자가 올바르게 추측되었는지 여부 반환
return foundAllLetters
# 플레이어가 너무 많은 횟수로 추측하여 게임에 패배했는지 확인
def checkWrongAnswer(missedLetters, secretWord):
# 만약 플레이어가 너무 많은 횟수로 추측하여 패배한 경우
if len(missedLetters) == len(HANGMANPICS) - 1:
# True 반환
return True
# 그 외의 경우 False 반환
return False
'데이터 기초' 카테고리의 다른 글
AB테스트 (0) | 2024.01.04 |
---|---|
ETL 기초 실습 (0) | 2023.12.31 |
워드클라우드 이용 데이터 시각화 (0) | 2023.10.27 |
셀레니엄 이용한 자동화 웹 스크래핑 (0) | 2023.10.26 |