繁体   English   中英

如何为仅使用记录器语句的except块编写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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM