单元测试挂起在某些输入上

时间:2017-11-18 07:56:48

标签: python python-2.7 unit-testing

我在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。我不明白发生了什么。

0 个答案:

没有答案