簡體   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