在 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)
我正在使用 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)