【问题标题】:unittest.mock: how to mock two calls on method?unittest.mock:如何模拟两个方法调用?
【发布时间】:2018-12-14 18:39:26
【问题描述】:

我如何模拟 datetime.datetime.now 对同一方法的两次调用?

低于我的尝试:

from datetime import datetime as dt

def metodo():
    return dt.today().strftime('%Y'), dt.today().strftime('%Y-%m-%d %X %z')


def test_metodo(self):
    expected = ('2018', "2018-12-14 12:34:56")
    mock_date = Mock(spec=mypackage.metodo)
    today.side_effect=list(expected)
    self.assertIsNotNone(metodo())
    self.assertEqual(expected, metodo())

【问题讨论】:

    标签: python-3.x mocking python-unittest.mock


    【解决方案1】:

    我已经成功了。

    @patch('mypackage.dt')
    def test_metodo(self, mock_date):
        expected = ('2018', "2018-12-14 12:34:56")
        mock_date.today.return_value = mypackage.dt(2018, 12, 14, 12, 34, 56)
        mock_date.today.return_value.strftime.side_effect = list(expected)
        self.assertIsNotNone(metodo())
        self.assertEqual(expected, metodo())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 2021-11-14
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多