[英]How to check if code goes inside of except block using unittest in Python
[英]How to write python unittest case for except block which just uses a logger statement
芹菜任务代码:
import logging
from celery_once import QueueOnce
from celery import shared_task, current_task
from test.set_data import set_data_in_db
logger = logging.getLogger("celery")
@shared_task(base=QueueOnce, once={"graceful": True}, ignore_result=False)
def set_data_task():
try:
logger.info("Set data in db initiated")
set_data_in_db(value=None)
except Exception:
logger.error("data could not be set", exc_info=True)
我的单元测试用例涵盖了 try 块中的所有内容。 如何强制我的单元测试也覆盖块除外?
当您调用方法set_data_task
,可能只有两种情况中的一种,方法正常执行(try 块)或抛出一些异常(块除外)。
如果您需要测试您的except
块,您需要将您的方法配置为抛出异常,以便它可以在您的测试中被捕获和断言
您将需要配置set_data_in_db
方法来抛出异常被捕获
对于测试异常,您可以阅读pytest.raises
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.