2017-09-27 58 views
1

也許這個問題在這裏沒有關係。讓我知道。測試客戶如何工作

我試圖找出test_client究竟如何(我的情況,是Flasktest_client)一般作品

我追溯到werkzeug.test.Clientdescription(我的情況,特別是)

"This class allows to send requests to a wrapped application." 

但引擎蓋下發生了什麼?應用程序沒有真正運行一個端口?

回答

2

Flask實現WSGI應用程序協議。它需要處理一個請求是一個描述請求數據的environ字典,並且它返回一個Response對象。它不關心,其中環境來自或響應進行的地方,這是由WSGI服務器協議處理。 Werkzeug開發服務器和生產服務器像Gunicorn處理這部分。

Werkzeug測試客戶端模擬服務器:爲響應HTTP請求而不是生成environ,它將響應函數調用產生一個響應。當您撥打client.get時,客戶端將根據您傳遞的參數構建WSGI environ字典,調用Flask WSGI應用程序,然後將響應返回給您。