使用Python 的Mock 套件模擬請求
要有效模擬Python 的requests 模組,請依照下列步驟操作:
要有效模擬Python 的requests 模組,請依照下列步驟操作:第1 步:模擬請求模組
要在測試類別的上下文中模擬請求模組,請使用以下語法:<code class="python">import mock @mock.patch('requests.get') def test_function(self, mockedRequests):</code>在測試函數內:
範例:
<code class="python">mockedRequests.get('aurl').return_value = 'a response' mockedRequests.get('burl').return_value = 'b response' mockedRequests.get('curl').return_value = 'c response'</code>
第2 步:呼叫視圖函數
第2 步:呼叫視圖函數在您的測試案例中,呼叫myview 函數來執行HTTP 請求。
第 3 步:驗證回應斷言回應物件包含預期值('a 回應'、'b 回應'、'c 回應')。
<code class="python">res1 = myview(request) self.assertIn('a response', res1) res2 = myview(request) self.assertIn('b response', res2) res3 = myview(request) self.assertIn('c response', res3)</code>
範例:
<code class="python">import unittest import mock from views import myview # Mock the requests module @mock.patch('requests.get') def test_myview(self, mockedRequests): # Define return values for URL calls mockedRequests.get('aurl').return_value = 'a response' mockedRequests.get('burl').return_value = 'b response' mockedRequests.get('curl').return_value = 'c response' # Call the view function res1 = myview(request) res2 = myview(request) res3 = myview(request) # Verify response self.assertIn('a response', res1) self.assertIn('b response', res2) self.assertIn('c response', res3) if __name__ == '__main__': unittest.main()</code>範例程式碼:
以上是如何有效模擬Python的Requests模組進行測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!