我终于为我的 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
创建作业并将它们添加到特定用户,以便我可以以该用户身份登录并查看作业是否正确显示?