Py学习  »  Django

如何测试django createview和form的有效性

user1544500 • 4 年前 • 637 次点击  

这也许很基本,但我还是不知道如何测试django CreateView 哪个有 form_valid(self, form) 方法?

这是我的代码:

class NewPatientFormView(LoginRequiredMixin, CreateView):
    model = Patient
    fields = ['name', 'surname', 'phone', 'email', 'PESEL', 'age',
          'patient_agreement']

    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.created_by_user = self.request.user
        self.object.save()
        return super().form_valid(form)`

我正在使用pytest,我只是不知道如何测试这个。我非常感谢一个简短的例子,如何可以测试…谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40241
 
637 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Hanny
Reply   •   1 楼
Hanny    5 年前

我相信你必须在 setUp 你的测试。

class NewPatientFormTest(TestCase):

    def setUp(self):
        self.form_data = {
            'name': 'Billy',
            'surname': 'Masters',
            'phone': '123-358-2382',
            *...the rest of your form data...*
        }

在你 设置 确保其他数据设置正确。然后使用你的测试-可能是这样的:

def test_new_patient_form_is_valid(self):
    form = NewPatientForm(data=self.form_data)
    self.assertTrue(form.is_valid())

显然这是超级简单的-但应该让你在正确的方向上得到这个测试。