测试我们的 Hello World 应用程序

介绍

在这个极简主义的例子中,使用 pytest 我们将测试确实我们的 Hello World 应用程序确实返回 Hello World! 在 HTTP /上使用 GET 请求命中时,HTTP OK 状态代码为 200

首先让我们将 pytest 安装到我们的 virtualenv 中

pip install pytest

仅供参考,这是我们的 hello world 应用程序:

# hello.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

定义测试

在我们的 hello.py 旁边,我们定义了一个名为 test_hello.py 的测试模块,它将由 py.test 发现

# test_hello.py
from hello import app

def test_hello():
    response = app.test_client().get('/')

    assert response.status_code == 200
    assert response.data == b'Hello, World!'

回顾一下,此时我们用 tree 命令获得的项目结构是:

.
├── hello.py
└── test_hello.py

运行测试

现在我们可以使用 py.test 命令运行此测试,该命令将自动发现我们的 test_hello.py 及其中的测试功能

$ py.test

你应该看到一些输出和 1 个测试已经过去的指示,例如

=== test session starts ===
collected 1 items 
test_hello.py .
=== 1 passed in 0.13 seconds ===