Django 模拟单元测试表单文件字段
Django mock unit test form filefield
我有一个要单元测试的表单:
app/form.py
class MyForm(forms.Form):
file = forms.FileField()
app/test.py
class MyFormTest(TestCase):
def test_my_form(self):
file_mock = MagicMock(spec=File)
form = MyForm({'file':file_mock})
self.assertTrue(form.is_valid())
我如何使用 mock 或其他 was 对这个表单进行单元测试?如果可能的话,我想使用 mock 来测试这个表单。我如何修补和模拟测试它?
from django.core.files.uploadedfile import SimpleUploadedFile
...
def test_form(self):
upload_file = open('path/to/file', 'rb')
file_dict = {'file': SimpleUploadedFile(upload_file.name, upload_file.read())}
form = MyForm(file_dict)
self.assertTrue(form.is_valid())
我从另一个来源找到了这个解决方案:
form = MyForm(files={'file':file_mock})
或
file_dict = {'file': SimpleUploadedFile(upload_file.name, upload_file.read())}
form = MyForm(files=file_dict)
这成功了。
我有一个要单元测试的表单:
app/form.py
class MyForm(forms.Form):
file = forms.FileField()
app/test.py
class MyFormTest(TestCase):
def test_my_form(self):
file_mock = MagicMock(spec=File)
form = MyForm({'file':file_mock})
self.assertTrue(form.is_valid())
我如何使用 mock 或其他 was 对这个表单进行单元测试?如果可能的话,我想使用 mock 来测试这个表单。我如何修补和模拟测试它?
from django.core.files.uploadedfile import SimpleUploadedFile
...
def test_form(self):
upload_file = open('path/to/file', 'rb')
file_dict = {'file': SimpleUploadedFile(upload_file.name, upload_file.read())}
form = MyForm(file_dict)
self.assertTrue(form.is_valid())
我从另一个来源找到了这个解决方案:
form = MyForm(files={'file':file_mock})
或
file_dict = {'file': SimpleUploadedFile(upload_file.name, upload_file.read())}
form = MyForm(files=file_dict)
这成功了。