Django 模拟单元测试表单文件字段

标签 django forms mocking filefield django-unittest

我有一个想要进行单元测试的表单:

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())

我如何使用模拟或其他方式对该表单进行单元测试?如果可能的话,我想使用模拟测试这个表单。我如何修补和模拟测试它?

最佳答案

我从另一个来源找到了这个解决方案:

form = MyForm(files={'file':file_mock})

file_dict = {'file': SimpleUploadedFile(upload_file.name, upload_file.read())}
form = MyForm(files=file_dict)

这成功了。

关于Django 模拟单元测试表单文件字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39585094/

相关文章:

c# - 调用模拟对象的异步方法时出现 NullReferenceException

python - 升级到 django-rest-framework 3.5.3 后不允许使用 HEAD 方法

Django admin 内联自定义查询集

javascript - 表单未使用 react 从外部按钮提交

ruby-on-rails - 将 rails 表单提交到 "friendly"URL

javascript - Ajax 表单提交进度功能失败?

python - 为什么 mock 会添加 __nonzero__ 方法调用?

Django:运行数据迁移时出现 "column <whatever> does not exist"

python - Django:我如何判断RelatedManager 中所有对象的某个质量是否相同?

Python模拟日志记录同时保留日志输出