2024-05-17 19:45:33 发布
网友
我需要测试我的Django应用程序的照片模型。如何用测试图像文件模拟ImageField?
测试.py
class PhotoTestCase(TestCase): def test_add_photo(self): newPhoto = Photo() newPhoto.image = # ?????? newPhoto.save() self.assertEqual(Photo.objects.count(), 1)
对于未来的用户,我已经解决了这个问题。 可以用SimpleUploadedFile实例模拟ImageField。
from django.core.files.uploadedfile import SimpleUploadedFile newPhoto.image = SimpleUploadedFile(name='test_image.jpg', content=open(image_path, 'rb').read(), content_type='image/jpeg')
告诉mock库基于Django的文件类创建mock对象
import mock from django.core.files import File file_mock = mock.MagicMock(spec=File, name='FileMock')
然后在你的测试中使用
newPhoto.image = file_mock
可以使用临时文件,使用^{}。所以你不需要真正的文件来做测试。
import tempfile image = tempfile.NamedTemporaryFile(suffix=".jpg").name
如果您喜欢手动清理,请使用tempfile.mkstemp()。
tempfile.mkstemp()
对于未来的用户,我已经解决了这个问题。 可以用SimpleUploadedFile实例模拟ImageField。
测试.py
告诉mock库基于Django的文件类创建mock对象
然后在你的测试中使用
可以使用临时文件,使用^{} 。所以你不需要真正的文件来做测试。
如果您喜欢手动清理,请使用
tempfile.mkstemp()
。相关问题 更多 >
编程相关推荐