首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟timedelta.total_seconds()

模拟timedelta.total_seconds()
EN

Stack Overflow用户
提问于 2018-10-16 20:26:45
回答 1查看 585关注 0票数 1

有任何方法可以从下面的代码中模拟total_seconds()吗?

代码语言:javascript
复制
start = datetime.now()
...
end = datetime.now()
diff = (end - start).total_seconds()

我试过了,但发现了这个错误

TypeError:不可排序类型: MagicMock() > int()

EN

回答 1

Stack Overflow用户

发布于 2018-10-16 20:59:21

这是一个很难理解的例子,但它可以给出一些提示:

代码语言:javascript
复制
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() (也许)可以替换为self.datetime_mock.now()

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52843581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档