Beachten Sie, dass ich auf eine Szene gestoßen bin, in der ich eine Methode testen wollte, die die aktuelle Zeit in Python zurückgibt Die Freezegun, mit der das Datum festgelegt werden kann, ist praktisch!
Für Pytest gibt es "Pytest-Freezegun" als Plug-In für Pytest. "@ Pytest.mark.freeze_time" wird als Marker für pytest hinzugefügt.
test_sample.py
from datetime import datetime
import pytest
@pytest.mark.freeze_time('2019-11-27 11:23:23')
def test_time():
assert datetime.today() == datetime(2019, 11, 27, 11, 23, 23)
Es ist in Ordnung zu importieren
get_today.py
def dateget():
return datetime.datetime.today()
test_sample.py
from datetime import datetime
import pytest
import get_today
@pytest.mark.freeze_time('2019-11-27 11:23:23')
def test_time():
assert get_today.dateget() == datetime(2019, 11, 27, 11, 23, 23)
$ python -m pytest test_sample.py
plugins: freezegun-0.3.0.post1
collected 1 item
test_sample.py .
==== 1 passed in 0.07 seconds ====
Wenn Sie mit 〇 Minuten vor (Minuten = update_span) der aktuellen Zeit herumspielen, ist auch 〇 Stunden oder 〇 Tage vor möglich
test_sample.py
@pytest.mark.freeze_time('2019-11-27 11:23:23')
def test_time():
correct_value = datetime(2019, 11, 27, 11, 20, 23)
subtracted_time = datetime.now() - timedelta(minutes=3)
assert subtracted_time == datetime(2019, 11, 27, 11, 20, 23)
Recommended Posts