在定义装饰器'foo'的模块中,有什么方法可以测试foo应该抛出的异常?我正在寻找一个可以在模块结尾处进行的简单测试,如下所示:
if __name__ == '__main__':
@foo
def bar(quux):
pass
#test that foo raises a particular exception when decorating bar
我猜我可以制作一个expect_exception装饰器来装饰foo装饰的bar函数。有没有更好的办法?也许最简单的方法是“手动”应用装饰器?:
try:
bar = foo(bar)
except FooException:
# test passed
答案 0 :(得分:1)
如您所述,“手动”装饰它将起作用。您也可以通常在函数内部进行修饰或尝试/除外:
try:
@foo
def bar(quux):
pass
except FooException:
# test passed