使用mock测试多对多的中间模型

时间:2013-11-11 17:42:18

标签: django mocking many-to-many

我有两个通过自定义中间表连接的表:

class Foo(models.Model):
    title = models.CharField(max_length=255)

class Bar(models.Model):
    title = models.CharField(max_length=255)
    foos = models.ManyToManyField(Foo, through="FooBar")

class FooBar(models.Model):
    some_attr = models.BooleanField(default=True)
    foo = models.ForeignKey(Foo)
    bar = models.ForeignKey(Bar)

在测试这些模型的保存功能时,我有点不知所措。保存Foo和Bar实例本身很好,但是如何测试我可以使用模拟添加并保存与FooBar的多对多关系?在FooBar模型或Bar模型上是否应该进行多对多的加法测试?我想我只是在寻找使用模拟而非固定装置测试这些模型的方向。

1 个答案:

答案 0 :(得分:0)

我最终使用了factory-boy,它提供了一种简单的方法来设置测试实例,同时比使用灯具更灵活。

其他选项包括model-mommy,它做了类似的事情,人们说语法更容易使用。