gpt4 book ai didi

python - python中的模拟函数参数

转载 作者:太空宇宙 更新时间:2023-11-04 09:00:47 25 4
gpt4 key购买 nike

假设我有这个功能

from datetime import date

def get_next_friday(base_date=date.today()):
next_friday = ...
return next_friday

然后我有一个 celery 任务来调用这个函数而不传入 base_date

@celery_app.task
def refresh_settlement_date():
Record.objects.update(process_date=get_next_friday())

在单元测试中,我正在运行 refresh_settlement_date() 任务,但它在调用 get_next_friday() 时没有提供 base_date,我的问题是如何模拟该参数以测试 future 的日子?

我试图避免添加参数以成为 refresh_settlement_date(base_date),因为它没有实际用途,仅用于单元测试。

最佳答案

另一种方法是修补当前日期。

有一个具有多个选项的相关主题:


我最喜欢的选择是使用名为 freezegun 的第三方模块.

你只需要添加一行,非常干净易读:

@freeze_time("2014-10-14")
def test_refresh_settlement_date_in_the_future(self):
...

关于python - python中的模拟函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25677477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com