网站POST工作,但检查信息更新的单元测试失败了

问题描述 投票:1回答:1

我试图测试我的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'

谢谢你

django selenium django-forms tdd
1个回答
1
投票

您可以更新测试数据库中的用户,但您必须使用 user.refresh_from_db()来更新你的函数中使用的用户对象。

编辑:如果你从请求中返回用户数据,你也可以尝试将其与字符串进行比较。例如 self.assertEqual(response.data["username"], "testuser")

© www.soinside.com 2019 - 2024. All rights reserved.