Python Falcon 测试
Falcon的测试模块是Falcon应用程序的一个功能测试框架。它包含各种测试类和实用函数,以支持功能测试。该测试框架同时支持 unittest 和 pytest。
我们将使用以下脚本( myapp.py )来演示测试功能。它包含一个 HelloResource 类,其中的 on_get() 响应器可以渲染Hello World的JSON响应。 create() 函数返回Falcon的应用程序对象,该对象添加了一个用 ‘ / ‘ URL注册的路由。
使用unittest
testing.TestCase 扩展了 unittest ,以方便对用Falcon编写的WSGI/ASGI应用程序进行功能测试。我们需要继承这个基类并编写测试。
TestCase子类中的测试函数名为 simulate_*() ,其中 ‘ * ‘ 代表HTTP方法,如GET、POST等。这意味着,我们必须获取 simulate_get() 函数的结果,并通过断言函数将其与预期结果进行比较。
simulate_*() 函数接收两个参数。
以下是 test-myapp.py 的代码 。 它执行 simulate_get() 函数,并将其结果与预期的结果进行比较,并指出测试是失败还是通过。
在以下命令的帮助下运行上述测试—-。
使用Pytest
要使用PyTest框架进行测试,你需要使用PIP工具安装它。
为了运行一个 测试 功能,我们需要一个 Testing.TestClient 类的对象。它模拟了WSGI和ASGI应用程序的请求。这个对象首先通过给Falcon应用程序对象作为参数来获得。
我们运行 simulate_*() 函数,并将其结果与预期的输出进行断言,以决定测试是失败还是通过。在这两个例子中,由于Hello World信息中的’W’的情况不同,测试失败。应答器返回的是大写的 “W”,而测试函数则是小写的。
使用以下命令运行上述测试-