【发布时间】:2010-12-10 18:38:15
【问题描述】:
我正在编写单元测试来验证个人资料头像模块。所以,我有一个允许用户上传头像的表单。如果存在,它只是替换当前的。
在我的测试中,我执行以下操作(类设置将用户登录 - 此处未显示):
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 单元测试的新手,所以我可能遗漏了一些非常简单的东西......
任何想法都将不胜感激。
提前致谢!
【问题讨论】:
-
在上传之间重新加载用户对象。
-
感谢亚当!做到了:) 干杯
标签: django unit-testing