如何在Flask中的一个非常简单的网页上进行集成测试

如何在Flask中的一个非常简单的网页上进行集成测试,flask,integration-testing,jinja2,Flask,Integration Testing,Jinja2,我的项目有一个web界面,它提供了MyPackagePython模块中的一些函数。基本上,这是一个页面,是所有路线相同。我甚至不在这里使用数据库。有什么可以测试的吗 class MyTextForm(FlaskForm): text_content = StringField('mytextfield', validators=[DataRequired(), Length(20, 30)], widget=TextArea()) @app.route('/', methods=['

我的项目有一个web界面,它提供了MyPackagePython模块中的一些函数。基本上,这是一个页面,是所有路线相同。我甚至不在这里使用数据库。有什么可以测试的吗

class MyTextForm(FlaskForm):
    text_content = StringField('mytextfield', validators=[DataRequired(), Length(20, 30)], widget=TextArea())


@app.route('/', methods=['POST', 'GET'], defaults={'sub': 'sub1'})
@app.route('/subpage/<sub>', methods=['POST', 'GET'])
def index(subpage):
    form = TweetTextForm()
    prediction_results = dict()
    try:
        model = app.models[subpage]

        if form.validate_on_submit():
            result = model.process(request.form["text_content "])

        return render_template('template.html',
                               value1=value1,
                               value2=value2,
                               form=form,
                               data=model.get_data())
    except Exception:
        abort(404)
class MyTextForm(烧瓶形式):
text\u content=StringField('mytextfield',验证器=[DataRequired(),Length(20,30)],widget=TextArea()
@app.route('/',方法=['POST','GET'],默认值={'sub':'sub1'})
@app.route('/subpage/',methods=['POST','GET'])
def索引(子页):
form=TweetTextForm()
预测结果=dict()
尝试:
模型=应用程序模型[子页面]
if form.validate_on_submit():
结果=model.process(request.form[“text\u content”])
返回呈现模板('template.html',
value1=value1,
value2=value2,
形式=形式,
data=model.get_data())
除例外情况外:
中止(404)
我还应该测试jinja模板吗?
我真的不确定应该在那里测试什么?

是的,您可以使用类似的方法测试页面的负载和行为。例如,您可以让Selenium打开浏览器,转到每个url路由,并确认它正在正确加载元素

这不会测试您的视觉效果,但它将允许您确认后端和模板正在执行它们应该执行的操作

您可能会遇到以下情况:

集成测试.py

然后,您可以启动测试服务器并从shell调用它来运行测试(使用单独的终端):

服务器终端:

$ flask run
$ python integration_tests.py
命令终端:

$ flask run
$ python integration_tests.py
我还建议在表单元素和
变量上添加和测试(单元和集成/功能)一些输入验证/清理,使用或者删除不需要的html等