我有一些功能:

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/

10-12 21:27