在我們測試中,肯定會對接口進行測試。之前也分享過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}")
其實要做的測試很簡單,我們可以利用這個方式對於我們已經開發的接口進行單元測試。
文章首發在公眾號,歡迎關注。