如何为Django应用程序设置单元测试用户?单元测试无法登录。

29

我已为我的Django应用启用了登录验证。但是,视图的单元测试无法正常工作,因为它们会卡在登录页面。在视图响应返回后立即设置断点并使用

print response.content

将输出包含“请登录”的短语。

我该如何设置用户以便测试用例可以登录?我已经尝试使用我的用户名和密码,但在单元测试环境中不起作用。

1个回答

45

在测试用例的开头插入以下代码,创建一个用户,登录该用户,并允许测试的其余部分继续进行。

self.user = User.objects.create_user(username='testuser', password='12345')
login = self.client.login(username='testuser', password='12345')

@rurp,你说得完全正确。我已经修改了答案以反映你的评论。感谢你帮我删除了另一行代码! - dolphus333
如果数据库中已经存在该用户名的用户,会怎么样?在测试中会发生什么? - theTypan
文档建议,并且我的测试使用了一个单独的数据库进行测试,因此这个问题没有出现。我会假设您会从create_user中收到一个错误信息。 - dolphus333

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接