我需要一些單元測驗來檢查成功登錄后的用戶是否可以打開個人資料編輯頁面,我應該怎么做?
我試過這段代碼,但它顯示錯誤。我是否必須使用自己的視圖來注冊用戶然后登錄或者有一些單元測驗模塊?
class UserProfilePage(TestCase):
def setUp(self):
self.credentials = {
'username': 'test_user',
'password': 'secret'}
user = User.objects.create_user(**self.credentials)
self.user_profile = {
'user': user,
'first_name': 'Test_1',
'surname': 'test_surname',
'about_me': 'some_info',
'email': '[email protected]',
}
UserProfile.objects.create(**self.user_profile).save()
self.user_id = UserProfile.objects.get(user=user.id)
def test_profile_page_and_current_template(self):
response = self.client.get('/blog/user/profile/', self.user_id)
self.assertEqual(response.status_code, 200)
ValueError: Cannot query "Test_1": Must be "User" instance.
uj5u.com熱心網友回復:
客戶端 API 允許您像這樣登錄用戶:
self.client.force_login(user)
只需在訪問測驗中的組態檔頁面之前運行它。
您的代碼中也存在錯誤。
...
self.user_id = UserProfile.objects.get(user=user)
...
在這里,您將組態檔物件分配給user_id并稍后嘗試user_id在請求中作為引數傳遞,而不是用戶 ID。我猜這就是你得到錯誤的原因。
我建議只設定useras 物件屬性;你不需要其他任何東西。然后self.user.id在您的測驗中訪問它。
另請參閱:https ://docs.djangoproject.com/en/4.0/topics/testing/tools/#django.test.Client.force_login
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/481722.html
