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