0
그래서 내가 단위 테스트에 새로운 오전 잘못 입력 등록하고 나는 모의 입력 'yes'
으로 읽고 내가 왜 같이 입력을 조롱 할 때 여기에 'no'
가 왜 잘 모르겠어요 알아 내려고 노력하고 있어요 내 실행 코드.파이썬 유닛 테스트 모의 입력
def main():
newGame = input("")
if newGame == "yes" or "y":
print("TEST1")
elif newGame == "no" or "n":
print("TEST2")
else:
print("TEST3")
미친듯한 것은 아닙니다. 여기에 내 테스트 코드가있다.
import unittest
from unittest.mock import patch
import io
import sys
from RunFile import main
class GetInputTest(unittest.TestCase):
@patch('builtins.input', return_value="no")
def test_output(self,m):
saved_stdout = sys.stdout
try:
out = io.StringIO()
sys.stdout = out
main()
output = out.getvalue().strip()
self.assertEqual("TEST2",output)
finally:
sys.stdout = saved_stdout
if __name__ == "__main__":
unittest.main()
또한 여기에 추적이 있습니다.
======================================================================
FAIL: test_output (__main__.GetInputTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Python33\lib\unittest\mock.py", line 1087, in patched
return func(*args, **keywargs)
File "C:/Users/jsalce/Documents/Testsuites/IfStatements/Testsuite.py", line 18, in test_output
self.assertEqual("TEST",output)
AssertionError: 'TEST2' != 'TEST1'
- TEST2
+ TEST1
? +
내가 입력을 "아니오"로 설정하기 전에 언급 한 것과 같이 나는 무슨 일이 벌어지고 있는지 모릅니다.
미리 감사드립니다.
감사합니다. – SalceCodec