小编hen*_*der的帖子

Django工厂男孩在工厂中模拟模型方法

我的模型的保存方法是在保存后调用 api。为了测试我的应用程序,我使用DjangoModelFactory生成用于测试的对象。但是,api仍然被调用。

class MyClass(models.Model):
    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        self.call_api()
Run Code Online (Sandbox Code Playgroud)

我尝试过模拟该方法,但它不起作用

#...
from .models import MyModel

@pytest.mark.django_db
@patch("MyModel.call_api")
class MyModelFactory(factory.django.DjangoModelFactory, factory.base.BaseFactory):
    class Meta:
        model = MyModel
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我将它与工厂一起使用时,如何使用模拟方法?

django factory-boy

0
推荐指数
1
解决办法
1636
查看次数

标签 统计

django ×1

factory-boy ×1