0

我如何通过对同一方法的两次调用来模拟 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())
4

1 回答 1

0

我已经成功了。

@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())
于 2018-12-15T15:00:45.850 回答