![](/img/trans.png)
[英]Testing in Django Rest Framework, reproduce this curl request?
[英]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.