dav*_*vid -1 python unit-testing assert
所以我试图导入一个模块,并从该模块中的类测试方法。
这是方法的示例。
def production_warning(self, targetenv):
if targetenv == 'prdv':
prodwarning1 = raw_input("WARNING: You are deploying to the production environment. Are you sure you want to do this? Y/N: ").upper()
if prodwarning1 == "N":
sys.exit()
prodwarning2 = raw_input("DEPLOYING TO PRDV, ARE YOU REALLY, REALLY SURE? Y/N: ").upper()
if prodwarning2 == "N":
sys.exit()
else:
return True
Run Code Online (Sandbox Code Playgroud)
这是我尝试编写的测试示例。
def production_warning():
try:
assert test.production_warning('prdv') is not errors
assert test.validate_params('fakeenv') is errors
print "Test Passed {0}/5: validate_params".format(counter)
test_db_refresh()
except:
print "Test Failed {0}/5: validate_params".format(counter)
test_db_refresh()
def db_refresh_prompt():
# assert test.db_refresh_prompt() is not errors
global counter
counter += 1
print "Test Passed {0}/5: db_refresh_prompt".format(counter)
production_warning()
db_refresh_prompt()
etc()
Run Code Online (Sandbox Code Playgroud)
如何检查是否出现错误?在一天结束时,我将尝试完成所有这些测试,并且对于每个功能,如果没有引发异常,请打印“成功”。如果引发异常,请继续进行下一个测试。人们似乎总是朝着“调用您的函数会自动引发异常(如果有)的方向”的方向指点我,但这会在抛出异常并且我不希望出现异常时停止我的测试,我想继续下一个测试。
我可以通过以下方法解决此问题:
def validate_params():
try:
assert test.validate_params('hackenv-re', 'test.username') is not errors
assert test.validate_params('fakeenv', 'test.username') is errors
assert test.validate_params('hackevn-re', 'vagrant') is errors
global counter
counter += 1
print "Test Passed {0}/5: validate_params".format(counter)
test_db_refresh()
except:
print "Test Failed {0}/5: validate_params".format(counter)
test_db_refresh()
Run Code Online (Sandbox Code Playgroud)
但这似乎打败了首先使用unittest的目的?我认为使用unittest可以断言是否引发异常,并且它会返回一个T / F,我可以执行任何我想做的事情。
希望有足够的信息。
基于给出的许多答案,我假设没有任何内置工具可以在哪里测试我可以做的assertRaise(我相信这是在Django中使用的)
| 归档时间: |
|
| 查看次数: |
3796 次 |
| 最近记录: |