私は Python の mock() に問題があり、何が起こっているのかを理解するのに十分な知識がありません。
次のような抽象非同期タスククラスがあります。
class AsyncTask(object):
@classmethod
def enqueue(cls):
....
task_ent = cls.createAsyncTask(body, delayed=will_delay)
....
このクラスの特定のインスタンスの createAsyncTask メソッドにパッチを適用したいと考えています。
私が書いたコードは次のようになります。
@patch.object(CustomAsyncTaskClass, "createAsyncTask")
def test_my_test(self, mock_create_task):
....
mock_create_task.return_value = "12"
fn() # calls CustomAsyncTaskClass.enqueue(...)
....
エンキューで task_ent を出力すると、<MagicMock name='createAsyncTask()' id='140578431952144'>
cls.createAsyncTask
エンキューで印刷すると、<MagicMock name='createAsyncTask' id='140578609336400'>
私は何を間違っていますか?createAsyncTask が 12 を返さないのはなぜですか?