Ksc*_*Ksc 0 python unit-testing mocking
以下功能从用户获取密码.我需要使用单元测试/(模拟)来测试它.
def create_auth():
username = '{user}'.format(user=getpass.getuser())
pwd = getpass.getpass()
auth_string = '{username}:{pwd}'.format(username=username, pwd=pwd)
return auth_string
Run Code Online (Sandbox Code Playgroud)
我是python的新手,任何暗示都会有所帮助
谢谢
一般来说,您应始终将用户输入与程序/业务逻辑分开.
def create_auth_interactive():
return create_auth(getpass.getuser(), getpass.getpass())
def create_auth(user, pwd):
username = '{user}'.format(user=user) # do you really need this line??
auth_string = '{username}:{pwd}'.format(username=username, pwd=pwd)
return auth_string
Run Code Online (Sandbox Code Playgroud)
这使您的代码更易于维护:
你可以不用嘲笑进行单元测试.模拟是非常有用的,但是如果你发现随着时间的推移你需要模拟越来越多的东西,这很好地表明你的代码没有关注分离.看一下依赖注入
使用输入值列表构建多个测试用例要容易得多(但有些人更愿意进行多次独立测试,请与您的团队/项目核实)