@pytest.mark.parametrize("test_input,expected_output", data)
def test_send_email(test_input, expected_output):
emails = SendEmails(email_client=MagicMock())
emails.send_email = MagicMock()
emails.send_new_email(*test_input)
emails.send_email.assert_called_with(*expected_output)
私は、send_new_emailメソッドで呼び出されたdatetime.datetime.now()を模倣しようとしています。私はそれを行う方法がわかりません。ユニットテスト中に
は私が、私はこの質問をした
TypeError: can't set attributes of built-in/extension type 'datetime.datetime'
エラーを取得する新しいDateTimeオブジェクト
datetime_object = datetime.datetime.strptime('Jun 1 2017 1:33PM',
'%b %d %Y %I:%M%p')
を作成し、しかしdatetime.datetime.now
datetime.datetime.now = MagicMock(return_value=datetime_object)
をオーバーライドしてみましたPythonの重複としてマークされている:datetime.date.today()をモックしようとしているが、動作していない
Python: Trying to mock datetime.date.today() but not working
私はすでにこのソリューションをしようとしたが、私はそれを動作させることができませんでした。私はプロジェクトの要件のためにfreezegunをインストールすることはできません。
私はテストファイルで
class NewDate(datetime.date):
@classmethod
def today(cls):
return cls(2010, 1, 1)
datetime.date = NewDate
を新しいクラスを作成しているしかし、私はこれを使用するためにSendEmailsクラスを取得する方法は考えています。
これは既に重複しているとマークされたあなたの[最後の質問](https://stackoverflow.com/questions/47410854/mock-datetime-datetime-now)の再投稿と思われます。以前の質問と再投稿ではなく再オープンしようとしていますか? – EdChum
私はその質問にコメントして編集しました。しかし、何も起こらなかった。ヘルプのコメントは新しい質問をするように言います。ちょうどstackoverflowが何をするのかに従ってください。 – user7692855
ここでの問題は、これがカーボンコピーであることです。以前の質問を再開するために投票し、正確な複製を投稿しないようにする必要があります。 – EdChum