我这样设置了一个单元测试:
class UserViewTests(TestCase):
def setUp(self):
self.user_passwords = '123456'
self.user1 = User.objects.create(username='Bobby Johnson', password=self.user_passwords)
...
def test_view_user(self):
"""
Check that you can view a user's information correctly in their profile
"""
response = self.client.get(reverse('login'))
self.assertContains(response, "You're not logged in yet", status_code=200)
self.client.login(username=self.user1.username, password=self.user_passwords)
response = self.client.get(reverse('login'))
self.assertContains(response, "You've logged in already", status_code=200)
只有最后一个断言失败,并且在最后一个断言中将“你已经登录”替换为“你还没有登录”使测试通过,所以看起来我的登录失败了。我猜这是因为我django-social-auth
用来允许 OpenId 登录。
我怎样才能以某种方式让单元测试认为我的用户已经登录,所以这user.is_authenticated
是真的?我只想测试当用户登录时我的视图是否正确显示,而不是特别关心登录实际工作的单元测试。