我正在编写单元测试以验证个人资料头像模块。所以,我有一个允许用户上传头像的表单。如果存在,它只是替换当前的那个。
在我的测试中,我执行以下操作(类设置会记录用户 - 此处未显示):
f = open('testfile1.jpg')
data = {'image':f}
response = self.client.post('/profile/uploadavatar/',data)
self.assertEqual(response.status_code, 200)
self.assertEqual(self.user1.get_profile().avatar.image.name, u'uploads/images/testfile1.jpg')
f.close()
f = open('testfile2.jpg')
data = {'image':f}
response = self.client.post('/profile/uploadavatar/',data)
self.assertEqual(response.status_code, 200)
self.assertEqual(self.user1.get_profile().avatar.image.name, u'uploads/images/testfile2.jpg')
f.close()
第二个assertEqual测试头像图像名称总是失败,因为它仍然设置为第一个文件名(testfile1.jpg)。但是,当我手动测试时,代码执行了我认为应该执行的操作,即将旧的头像替换为新的头像。
我做错了吗?我是django单元测试的新手,所以我可能会遗漏一些非常简单的东西......
任何想法都会受到赞赏。
提前致谢!
答案 0 :(得分:0)
“self.user1”对象以及配置文件将在开头缓存。
在操作之间重新加载用户/配置文件对象以查看更新的数据。
(从评论中拉出来。)