Sanic的核心测试客户端
项目描述
Sanic核心测试
此包旨在成为测试Sanic应用程序的核心测试实用程序和客户端。它主要源自sanic.testing
,该模块将在未来的Sanic主仓库中被删除。
入门指南
pip install sanic-testing
此包旨在创建一个几乎无缝的过渡。因此,在加载包后,它将自动附加到您的Sanic实例并插入测试客户端。
from sanic import Sanic
from sanic_testing import TestManager
sanic_app = Sanic(__name__)
TestManager(sanic_app)
这将提供对同步(sanic.test_client
)和异步(sanic.asgi_client
)客户端的访问。这两个客户端也可以直接在TestManager
实例上使用。
编写同步测试
测试应该与测试客户端位于Sanic核心时的测试几乎相同。区别只是您需要运行TestManager
。
import pytest
@pytest.fixture
def app():
sanic_app = Sanic(__name__)
TestManager(sanic_app)
@sanic_app.get("/")
def basic(request):
return response.text("foo")
return sanic_app
def test_basic_test_client(app):
request, response = app.test_client.get("/")
assert response.body == b"foo"
assert response.status == 200
编写异步测试
异步方法的测试最好在安装了pytest-asyncio
的情况下进行。再次,以下测试应该对之前在Sanic核心包中使用过asgi_client
的人很熟悉。
使用asgi_client
的主要好处是它能够深入到您的应用程序内部,并执行您的处理器,而无需启动服务器或进行网络调用。
import pytest
@pytest.fixture
def app():
sanic_app = Sanic(__name__)
TestManager(sanic_app)
@sanic_app.get("/")
def basic(request):
return response.text("foo")
return sanic_app
@pytest.mark.asyncio
async def test_basic_asgi_client(app):
request, response = await app.asgi_client.get("/")
assert response.body == b"foo"
assert response.status == 200
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
sanic_testing-24.6.0.tar.gz (10.9 kB 查看哈希值)
构建分发
sanic_testing-24.6.0-py3-none-any.whl (10.3 kB 查看哈希值)