我在python中测试一个方法,该方法接受来自控制台菜单的输入,然后根据输入启动方法。出于某种原因,我的测试在测试中使用数字时无法启动,但不是字符串。这在我的python脚本的正常流程中不会发生。
以下是我的两项测试:
def test_invalid(self):
out = StringIO()
sys.stdout = out
main.launch_menu_choice("hello")
output = out.getvalue().strip()
assert output == 'Invalid selection, please try again.'
def test_one(self):
out = StringIO()
sys.stdout = out
main.launch_menu_choice('1')
output = out.getvalue().strip()
print output
assert output == 'where do you want to load your file: '
我正在测试的部分代码
def launch_menu_choice(choice):
if choice == '':
main_menu_actions['main_menu']()
else:
try:
main_menu_actions[choice]()
except KeyError:
print "Invalid selection, please try again.\n"
return
def load():
print "where do you want to load your file: "
path = raw_input(" >> ")
...
return
main_menu_actions是一个词典。 1是添加。出于某种原因,test_invalid工作正常,而测试无效挂起,而它表示正在启动unittests。我不明白发生了什么。