Python Django模型关系测试

Python Django模型关系测试,python,django,django-models,django-testing,Python,Django,Django Models,Django Testing,我是django测试新手,在使用django测试模型之间的关系时遇到了一些问题 以下是我的模型摘录: class Member(models.Model): user = models.OneToOneField('auth.User') points = models.IntegerField() def __unicode__(self): return self.points def get_number_of_poll(self):

我是django测试新手,在使用django测试模型之间的关系时遇到了一些问题

以下是我的模型摘录:

class Member(models.Model):
    user = models.OneToOneField('auth.User')
    points = models.IntegerField()

    def __unicode__(self):
        return self.points

    def get_number_of_poll(self):
        nbr_of_poll = Poll.objects.filter(user=self.user).count()
        return nbr_of_poll

class Poll(models.Model):
    question = models.CharField(max_length=200)
    user = models.ForeignKey(User)

    def __unicode__(self):
        return self.question
以下是测试:

from polls.models import Member, Poll
from django.contrib.auth.models import User
from django.test import TestCase

class MemberTestCase(TestCase):
    def setUp(self):
        user = User(username='user')
        self.member = Member(user=user, points=5000)
        poll = Poll(question='poll', user=user)

    def test_get_number_of_poll(self):
        self.assertEqual(self.member.get_number_of_poll(), 1)
问题在于总是返回0的
test\u get\u number\u of\u poll()
方法。该代码在现场按预期工作。 我考试有什么问题吗?我不确定如何在测试类中设置轮询。

问题在于

poll = Poll(question='poll', user=user)
仅实例化轮询对象,使用管理器实际保存对象,例如

poll = Poll.objects.create(question='poll', user=user)

您不会保存在安装方法中创建的任何项目。实例化模型对象不会将其保存到数据库中:您应该对其调用
save()
,或者只使用
User.objects.create(username='User')
等来保存它。

这很有意义。一旦测试完成,我应该使用
tearDown()
方法删除它们,还是自动完成?