在 Flask 中,如何对 WTF 表单进行单元测试?

In Flask, how can I unit test a WTF form?

我正在使用 WTForms。当我 运行 测试时,出现以下错误:

RuntimeError: working outside of application context

这是我测试的简化版本:

from unittest import TestCase
from forms.my_form import MyForm

class MyFormTest(TestCase):
    def test_expects_to_instantiate_new_form(self):
        form = MyForm()
        self.assertIsInstance(form, MyForm)

我的表格的简化版本:

from flask_wtf import FlaskForm
from wtforms import HiddenField
from wtforms.validators import Required

class MyForm(FlaskForm):
    hidden_field = HiddenField('Label will not be visible', [Required()])

为了提供所需的应用程序上下文,我 manually pushed a context:

from unittest import TestCase
from forms.my_form import MyForm
from flask import Flask

class MyFormTest(TestCase):
    def test_expects_to_instantiate_new_form(self):
        # Arrange
        app = Flask(__name__)

        # Act
        with app.test_request_context('/'):
            form = MyForm()

        # Assert
        self.assertIsInstance(form, MyForm)