【发布时间】:2016-04-02 20:55:06
【问题描述】:
我终于为我的 Django 应用程序设置了测试,但我在开始时遇到了困难。我正在使用model_mommy 为我的测试创建动态数据,但有以下问题:
我正在测试的视图应该向我显示特定用户必须完成的所有assignments。为了测试这一点,我想创建 500 个作业,登录到应用程序并检查它们是否显示。到目前为止,我有以下测试用例:
class TestLogin(TestCase):
def setUp(self):
self.client = Client()
user = User.objects.create(username='sam')
user.set_password('samspassword')
user.save()
def test_login(self):
self.client.login(username='sam', password='samspassword')
response = self.client.get('/')
print (response.content)
self.assertEqual(response.status_code, 200)
和
class TestShowAssignments(TestCase):
def setUp(self):
user_recipe = Recipe(User, username='sam', password="samspassword")
self.assignment = Recipe(Assignment,
coders = related(user_recipe))
self.assignments = self.assignment.make(_quantity=500)
def test_assignments(self):
self.assertIsInstance(self.assignments[0],Assignment)
self.assertEqual(len(self.assignments),500)
第一个测试顺利通过并完成了它应该做的事情:TestLogin 让用户登录并显示他的帐户页面。
麻烦从TestShowAssignments 开始,它创建了500 个作业,但如果我查看print (self.assignments[0].coders) 的作业,我会得到auth.User.None。所以它不会将我定义的用户添加为与分配的关系。这里可能很重要的是模型中的coders 字段是一个m2m 字段,我尝试使用related 来解决这个问题,但这似乎不起作用。
登录也不起作用:如果我在TestLogin 和TestShowAssignments 中使用用于登录的相同代码,我将无法登录并查看用户页面。
所以,我的问题是:如何使用model_mommy 创建作业并将其添加到特定用户,以便我可以以该用户身份登录并查看作业是否正确显示?
【问题讨论】:
标签: django testing django-testing django-tests model-mommy