1. 程式人生 > 其它 >FastAPI 學習之路(四十八)WebSockets(四)介面測試

FastAPI 學習之路(四十八)WebSockets(四)介面測試

在我們測試中,肯定會對介面進行測試。之前也分享過FastAPI 學習之路(三十八)對開發介面進行測試,那麼我們針對WebSockets介面怎麼測試呢。

其實很簡單。

from fastapi.testclient import TestClient
def test_websocket():
    client = TestClient(app)
    with client.websocket_connect("/items/ws?token="+"leizishuoceshi") as websocket:
        websocket.send_text("Hello WebSocket
") data = websocket.receive_text() assert str(data) =="訊息是: Hello WebSocket"

然後執行測試即可。

這個錯誤,主要是我們在最後的時候沒有釋放連結,我們可以在程式碼中連結接受到訊息後,返回完畢關閉,或者說我們單元測試的時候關閉連線.

@app.websocket("/items/ws")
async def websocket_endpoint(
    websocket: WebSocket,
    cookie_or_token: str = Depends(get_cookie_or_token),
):

    await websocket.accept()
    
while True: data = await websocket.receive_text() if data=='Hello WebSocket': await websocket.send_text(f"訊息是: {data}") break else: await websocket.send_text(f"訊息是: {data}")

其實要做的測試很簡單,我們可以利用這個方式對於我們已經開發的介面進行單元測試。

文章首發在公眾號,歡迎關注。