我有一个具有try/except的函数,如下所示:
def func_A():
try:
# do some stuff
except Exception as e:
log.error("there was an exception %s", str(e))
我想为此
func_A()
编写单元测试更重要的是,我要确保
我有
try/except
只是为了安全。除非有错误,否则A内不会抛出任何异常(尽管它会被
try/except
捕获),这就是我要通过单元测试进行验证的内容。单元测试捕获引发和捕获异常的情况的最佳方法是什么?
最佳答案
如果确实需要此方法,则一种可能的方法是模拟log.error
对象。调用func_A
函数后,您可以断言未调用您的模拟程序。
请注意,如果您不打算实际处理异常,则根本不应该捕获异常。为了获得适当的测试范围,您应该在此处提供2个测试-一个用于检查try/except的每个分支。
关于带有try/except的函数的Python单元测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40313230/