我在使用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(...)
....
当我在enqueue中打印出task_ent时,我得到的是``。
当我在enqueue中打印出`cls.createAsyncTask`时,我得到的是``。
我做错了什么?为什么createAsyncTask不返回12?