gpt4 book ai didi

python - 模拟 timedelta.total_seconds()

转载 作者:行者123 更新时间:2023-12-01 08:54:54 27 4
gpt4 key购买 nike

有没有办法从下面的代码中模拟total_seconds()?

start = datetime.now()
...
end = datetime.now()
diff = (end - start).total_seconds()

我已经尝试过,但出现此错误

TypeError: unorderable types: MagicMock() > int()

最佳答案

这是一个可靠的例子,但它可以给出一些提示:

from datetime import datetime
import unittest


def need_test():
start = datetime.datetime.now()
end = datetime.datetime.now()
diff = (end - start).total_seconds()
return diff


class SimpleTestCase(unittest.TestCase):

def setUp(self):
datetime_mock = mock.patch(__name__ + ".datetime")
self.datetime_mock = datetime_mock.start()

def test_need_test(self):
self.datetime_mock.datetime.now().__sub__().total_seconds.return_value = 123
self.assertEqual(need_test(), 123)

首先,应在 mock.patch.object(module.where.is.your.function, "datetime"上更改 mock.patch(__name__ + ".datetime") )。之后,self.datetime_mock.datetime.now()(也许)可以替换为self.datetime_mock.now()

此示例不是进行此类测试的正确方法,但它可以解决您的问题。

关于python - 模拟 timedelta.total_seconds(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52843581/

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