我有一个API端点来注册新用户。 “欢迎电子邮件”将排队并异步执行此任务。我有2个单元测试要检查:
我要添加第三个单元测试,以确保“端点将用户表单保存到DB后必须排队发送电子邮件”
我尝试使用celery.AsyncResult,但它要求我运行工作程序。更进一步,即使工作人员准备就绪,我们仍然无法验证任务是否已排队,因为模棱两可的PENDING状态:
有人遇到这个问题吗?我该如何解决?
答案 0 :(得分:0)
在测试环境中解决此问题的常用方法是使用task_always_eager配置设置,该设置基本上指示Celery像常规函数一样运行任务。 Celery会代替EsyncrResult类型的对象,而不是AsyncResult,该对象的行为相同,但是执行逻辑完全不同。