我有一些功能:
def reverse_number(num):
try:
return int(num)
except ValueError:
return "Please provide number"
并为此进行测试:
assert_raises(ValueError, reverse.reverse_number, "error")
但当我打电话给
nosetests
时,我得到了一个错误:AssertionError: ValueError not raised
我做错什么了?
最佳答案
函数reverse_number
捕获异常,并阻止引发异常;导致断言失败,因为assert_raises
调用期望函数调用引发ValueError
异常。
只要不抓住例外,你就可以得到你想要的:
def reverse_number(num):
return int(num)
或者,可以使用
raise
语句捕获异常、执行某些操作并重新引发异常:def reverse_number(num):
try:
return int(num)
except ValueError:
# do something
raise # <--- re-raise the exception
关于python - Python Nose 测试ValueError异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27647762/