2024-05-19 13:25:04 发布
网友
有没有办法从下面的代码中模拟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(__name__ + ".datetime")应该在mock.patch.object(module.where.is.your.function, "datetime")上更改。之后self.datetime_mock.datetime.now()(也许)可以被{}取代
mock.patch(__name__ + ".datetime")
mock.patch.object(module.where.is.your.function, "datetime")
self.datetime_mock.datetime.now()
这个例子并不是进行这种测试的合适方法,但它可以解决您的问题。在
这是杜蒂的例子,但它可以给我们一些提示:
首先,}取代
mock.patch(__name__ + ".datetime")
应该在mock.patch.object(module.where.is.your.function, "datetime")
上更改。之后self.datetime_mock.datetime.now()
(也许)可以被{这个例子并不是进行这种测试的合适方法,但它可以解决您的问题。在
相关问题 更多 >
编程相关推荐