簡體   English   中英

在Django Rest Framework中進行測試時,在API Request Factory中調用View

[英]Calling View in API Request Factory when testing in Django Rest Framework

每當我們使用API​​ Request Factory在Django Rest Framework中測試API時,為什么在已經傳遞url時調用視圖。 請看以下代碼,以更好地理解。

request = self.factory.post("/api/v1/menu/", data)
views = MenuResource.as_view({"post": "post"})
response = views(request)
response.render()
self.assertEqual(201, response.status_code)

在上面的代碼中,我們既調用url又調用view。 正在調用View以在url上呈現視圖,但這不是我的用例。 我只想測試響應代碼。 有沒有一種方法可以在不渲染視圖的情況下獲取響應代碼,因為這對我的用例來說是一個致命的殺傷力。

我一直在尋找其他方法,除了使用API​​ Request Factory之外,但我只想知道API Request Factory為什么需要調用視圖。 與Django Rest Framework中提供的其他API測試模塊相比,有什么優勢嗎?

那是因為您沒有請求URL。

request = self.factory.post("/api/v1/menu/", data)只是創建一個供您使用的請求對象,它實際上並未發出請求。

因此,在您的情況下測試視圖包括創建一個請求對象並將其傳遞給視圖,該對象模仿該視圖傳遞和處理實際請求的方式。

如果要發送實際請求,則需要模擬測試服務器以處理實際請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM