我有一个我想要进行单元测试的表格:
应用/ form.py
class MyForm(forms.Form):
file = forms.FileField()
应用/ 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或其他单位测试此表单?如果可能的话,我想使用mock来测试这个表单。我该如何修补和模拟测试呢?
答案 0 :(得分:2)
我从另一个来源找到了这个解决方案:
form = MyForm(files={'file':file_mock})
或
file_dict = {'file': SimpleUploadedFile(upload_file.name, upload_file.read())}
form = MyForm(files=file_dict)
这就是诀窍。
答案 1 :(得分:0)
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())