我有一些功能:
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
我做错了什么?
答案 0 :(得分:4)
函数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