我对芹菜任务的第一次测试
My first test for a celery task
我是新手,我不懂,我需要你的帮助。我有一部分 API 代码可以保存对象并在完成后发送短信。它是如何测试的?我将不胜感激你的帮助。谢谢!
看起来像这样:
tasks.py/
@shared_task
send_sms(addr, text):
...
views.py/
def mydef():
my_objs_list = MyModel.values().filter(my_flag=False) # addr list
for item in my_objs_list:
send_sms.delay(str(item), text)
my_objs_list.update(my_flag=True)
您需要模拟 delay 方法并对传递的任何参数进行断言:
@override_settings(CELERY_ALWAYS_EAGER=True)
@mock.patch('project.tasks.send_sms.delay')
def test_view(self, send_sms):
...
send_sms.assert_called_with('item-value-1', 'text-value-1')
send_sms.assert_called_with('item-value-2', 'text-value-2')
我是新手,我不懂,我需要你的帮助。我有一部分 API 代码可以保存对象并在完成后发送短信。它是如何测试的?我将不胜感激你的帮助。谢谢!
看起来像这样:
tasks.py/
@shared_task
send_sms(addr, text):
...
views.py/
def mydef():
my_objs_list = MyModel.values().filter(my_flag=False) # addr list
for item in my_objs_list:
send_sms.delay(str(item), text)
my_objs_list.update(my_flag=True)
您需要模拟 delay 方法并对传递的任何参数进行断言:
@override_settings(CELERY_ALWAYS_EAGER=True)
@mock.patch('project.tasks.send_sms.delay')
def test_view(self, send_sms):
...
send_sms.assert_called_with('item-value-1', 'text-value-1')
send_sms.assert_called_with('item-value-2', 'text-value-2')