我需要测试使用 datetime.datetime.now() 的函数.最简单的方法是什么?
I need to test functions which uses datetime.datetime.now(). What is the easiest way to do this?
你需要monkeypatch datetime.now 函数.在下面的示例中,我正在创建可以稍后在其他测试中重复使用的夹具:
You need to monkeypatch datetime.now function. In example below, I'm creating fixture which I can re-use later in other tests:
import datetime
import pytest
FAKE_TIME = datetime.datetime(2020, 12, 25, 17, 5, 55)
@pytest.fixture
def patch_datetime_now(monkeypatch):
class mydatetime:
@classmethod
def now(cls):
return FAKE_TIME
monkeypatch.setattr(datetime, 'datetime', mydatetime)
def test_patch_datetime(patch_datetime_now):
assert datetime.datetime.now() == FAKE_TIME
这篇关于如何使用 py.test 对 python 的 datetime.datetime.now 进行猴子补丁?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
在鼻子下测试 Python 代码时,我应该如何验证日志How should I verify a log message when testing Python code under nose?(在鼻子下测试 Python 代码时,我应该如何验证日志消息?)
修补函数的 __call__Patch __call__ of a function(修补函数的 __call__)
如何在 Python 中对象的模拟方法中调用 self?How to call self in a mock method of an object in Python?(如何在 Python 中对象的模拟方法中调用 self?)
仅模拟对象上的单个方法Mocking only a single method on an object(仅模拟对象上的单个方法)
在 Python 中模拟子进程调用Mocking a subprocess call in Python(在 Python 中模拟子进程调用)
检查多个模拟的调用顺序Checking call order across multiple mocks(检查多个模拟的调用顺序)