# test.py
from freezegun import freeze_time
from actual import DummyClass
class DummyClassMock(DummyClass):
def some_function(self):
# does something
class TestClass():
def setUp(self):
self.dummy = DummyClassMock()
@freeze_time('2021-01-01')
def test_dummy_function(self):
self.assertTrue((self.dummy.dummy_function - datetime.utcnow()).total_seconds() >= 1)
# actual.py
from datetime import datetime, timedelta
class DummyClass():
def dummy_function(self):
return datetime.utcnow() + timedelta(5)
我的代码遵循上述结构。这样,如果我单独执行test_dummy_function
,dummy_函数将返回2021-01-01,测试用例将通过。然而,当我将它与项目中的所有其他测试用例一起运行时,它失败了。内容也不是独立的
这不是一个特别好的解决方案,但是,我使用的解决方法是定义一个只返回
datetime.utcnow()
并模拟它的函数。我的测试用例将把冻结时间中使用的日期指定为返回值。看起来有点像相关问题 更多 >
编程相关推荐