Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用输入对该函数进行单元测试?_Python_Python 3.x - Fatal编程技术网

Python 如何使用输入对该函数进行单元测试?

Python 如何使用输入对该函数进行单元测试?,python,python-3.x,Python,Python 3.x,如何使用输入对该函数进行单元测试?search_by_choice是一个接受用户输入的变量,但如何对其进行单元测试 def搜索(图书数据): """ 搜索并将搜索结果打印为编号列表。 一个函数,它从menu()接受菜单选择(整数)作为用户输入,运行search\u function()并收集 搜索函数()的结果。打印用户结果并返回主菜单页,即菜单()。 :前提条件:整数必须在[1:8]范围内 :postcondition:将结果编号和结果编号列表打印为字典 :return:menu() """

如何使用输入对该函数进行单元测试?search_by_choice是一个接受用户输入的变量,但如何对其进行单元测试

def搜索(图书数据):
"""
搜索并将搜索结果打印为编号列表。
一个函数,它从menu()接受菜单选择(整数)作为用户输入,运行search\u function()并收集
搜索函数()的结果。打印用户结果并返回主菜单页,即菜单()。
:前提条件:整数必须在[1:8]范围内
:postcondition:将结果编号和结果编号列表打印为字典
:return:menu()
"""
打印(搜索选项())
search\u by\u choice=int(输入(“请输入您的选择(数字):”).strip())
如果按_选项搜索_==1:
打印(“您选择的搜索人:作者”)
返回1
elif按选项搜索=2:
打印(“您选择了搜索者:标题”)
返回2
elif按选项搜索=3:
打印(“您选择了“搜索人:发布者”)
返回3
elif按选项搜索=4:
打印(“您选择的搜索方式:工具架”)
返回4
elif按选项搜索=5:
打印(“您选择的搜索方式:类别”)
返回5
elif按选项搜索=6:
打印(“您选择的搜索人:主题”)
返回6
elif按选项搜索=7:
打印(“您选择返回上一页(主菜单)”)
菜单(加载数据())
#返回7
elif按选项搜索=8:
打印(“您选择退出”)
退出图书(图书数据)
其他:
打印(“错误!请输入有效整数”)
菜单(加载数据())
您可以使用:

def numbers_to_strings(argument): 
     switcher = { 
        0: "zero", 
        1: "You chose search by: Author", 
        2: "You chose search by: Title", 
        3:
        .
        .
    } 
    # get() method of dictionary data type returns  
    # value of passed argument if it is present  
    # in dictionary otherwise second argument will 
    # be assigned as default value of passed argument 
    return switcher.get(argument, "nothing") 


# Driver program 
if __name__ == "__main__": 
    argument=0
    print numbers_to_strings(argument) 

这看起来像是程序的主要部分,它使用了所有其他部分——因此它不是单元测试意义上的“单元”。可以重新设计它以使其更易于测试,否则手动测试更容易,或者为了自动化测试,您可以重新路由stdin/stdout,但您编写的测试可能会很脆弱。