嘲笑timedelta.total_秒()

2024-05-19 13:25:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我试过了,但还是犯了这个错误

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


Tags: 代码datetime错误diffstartnowintend
1条回答
网友
1楼 · 发布于 2024-05-19 13:25:04

这是杜蒂的例子,但它可以给我们一些提示:

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(__name__ + ".datetime")应该在mock.patch.object(module.where.is.your.function, "datetime")上更改。之后self.datetime_mock.datetime.now()(也许)可以被{}取代

这个例子并不是进行这种测试的合适方法,但它可以解决您的问题。在

相关问题 更多 >