我试图测试我的POST到注册个人信息成功更新用户数据,但似乎不能让它通过。奇怪的是,我的网站上更新成功,但我的测试却失败了。
测试.py
def test_user_information_updated_on_success(self):
user = User.objects.create_superuser('username')
EmailAddress.objects.create(user=user, email="[email protected]", primary=True, verified=True)
self.client.force_login(user)
response = self.client.post('/enrolment/personal_information/', {'user': user.id, 'first_name': 'testuser', 'surname': 'testsurname', 'gender': 'M', 'dob': '1984-09-17 00:00:00'})
self.assertEqual(response.status_code, 302) # this passes - redirects to the next page
self.assertEqual(user.personalinformation.first_name, 'testuser') # this fails
错误。
AssertionError: '' != 'testuser'
谢谢你
您可以更新测试数据库中的用户,但您必须使用 user.refresh_from_db()
来更新你的函数中使用的用户对象。
编辑:如果你从请求中返回用户数据,你也可以尝试将其与字符串进行比较。例如 self.assertEqual(response.data["username"], "testuser")