如何使用pytes测试服务是否正常工作

2024-10-02 12:37:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一段代码,必须使用pytest进行测试:

from flask import Flask, render_template
app = Flask(__name__)

# two decorators, same function
@app.route('/')
@app.route('/index.html')
def index():
    return render_template('index.html', the_title='Tiger Home Page')

@app.route('/symbol.html')
def symbol():
    return render_template('symbol.html', the_title='Tiger As Symbol')

@app.route('/myth.html')
def myth():
    return render_template('myth.html', the_title='Tiger in Myth and Legend')

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

因为我以前没有处理过pytest,所以我不知道如何处理它。我一直在寻找类似的问题,但没有找到任何线索。有人能给出一个例子或材料如何测试上述应用程序吗


Tags: theappflaskindexreturntitlepytestdef
1条回答
网友
1楼 · 发布于 2024-10-02 12:37:00

这里有很多概念。但我会尽量涵盖基本内容。您需要指定要执行的测试类型。最常见的是:

  • 单元测试
  • 集成测试
  • 验收试验

单元测试的思想是测试特定函数或方法的行为。它将模拟(返回假数据)该函数的每个依赖项,并尝试将其隔离,以确保每当我提供数据X时,它总是返回我期望的结果

另一方面,集成测试恰恰测试单元测试试图避免的内容:功能、服务等之间的集成。这是一个更先进的概念和更难测试的方法

最后,验收测试将确保业务逻辑正常工作。因此,它将尝试对您的应用程序执行某些操作,并确保它执行您希望它执行的操作

还有很多其他类型的测试,但这些是最常见的

在测试路线之外,您可以进行单元测试和验收测试。我不认为单元测试在这里有用,因为route函数中的逻辑总是非常简单

您可以尝试以下代码段在路由中运行验收测试:

from <your module name> import app

def test():
    app.testing = True
    result = app.post('path_you_want_to_test',
                      data=<data_you_want_to_test>,
                      follow_redirects=True)

这样,您将在结果变量中获得post请求的结果

相关问题 更多 >

    热门问题