我已經使用django-rest-framework製作了其餘的API。
我有多個API端點。一些用於創建對象,一些用於列出對象,一些用於獲取對象的計數等。
在我的測試中,我測試每個端點以確保(例如)創建端點只接受POST請求。我測試列表端點以確保它們只接受GET,而不是POST/PUT/PATCH/DELETE。每個端點都對應一個視圖,該視圖具有確定它們允許哪些請求的設置,但測試可確保這些設置正常工作。測試主要聲明返回某個狀態碼。
測試變得非常重複。評論API的測試大約600行。這種測試是必要的,還是有一個簡化的選擇?正在測試REST訪問是否必要/好?
回答
在編寫冗餘測試和爲系統的關鍵區域獲得足夠的代碼覆蓋率之間始終保持良好平衡。由於您的應用中的終端很可能會有很多移動部分(即響應/請求解析,HTTP調用,數據存儲的訪問等),因此您可能會發現太多的測試可能會顯着減慢測試速度套房。
您經常會發現,結合大量標準單元測試(無i/o),少量目標端到端測試就足夠了。 關鍵是要在關鍵代碼覆蓋率和測試套件的穩定性能之間找到健康的平衡點。
上有一個很好的堆棧溢出的話題,在肯特·貝克討論了一個高效的測試套件:
,你正在測試的框架/庫,而不是這屬於測試反模式的類別你自己的代碼。
像這樣的一些測試是值得的,特別是如果你不熟悉框架,並且它們用來驗證你的使用。儘管如此,對它進行徹底的測試會讓你無法花費在測試應用程序代碼上。
如果你真的覺得一個框架或庫不穩定,你仍然想使用它,你最好直接測試它,即分叉項目(假設它是開源的),添加一些測試,並使拉請求。
這也是一個很好的答案 - 我從未想過這件事。希望我能接受兩個答案! – dcgoss
我偶然發現了這個很酷的庫:django-rest-assured,這似乎需要大量的測試這種REST訪問的鍋爐板。這使得測試該功能變得更加微不足道,甚至值得您花時間。
是的,django-rest-assured特別爲此目的而建造(我是它的作者)。但是,儘管腳手架支持API的完整測試覆蓋率,但隨着項目的發展和成熟,您應該將其降至您的應用程序所需的最小值,以實現測試的簡單性,性能和可維護性。 – ydaniv
- 1. 是否有必要測試NULL是否也測試大於?
- 2. Spring MVC:是否有必要測試@ModelAttribute是否爲null?
- 3. 是否有必要測試在JavaScript MVC視圖的構架
- 4. 正在測試自己是否仍然有必要和/或有意義?
- 5. 這是甚至必要的測試嗎?
- 6. 是否有必要與命名「測試」 NUnit測試的DLL與MSBuild的
- 7. 測試一個好的查詢是否正在發佈
- 8. 我是否正確測試?
- 9. 要測試是否存在gmail帳戶
- 10. 您是否必須在asp.net中安裝REST入門套件才能訪問API?
- 11. 是否有必要了解代碼訪問安全性(CAS)?
- 12. 是否有必要訪問AsyncTask中的SQLite數據庫?
- 13. Cordova.js是否必要?
- 14. _mmServerScripts是否必要?
- 15. KillTimer是否必要?
- 16. Google是否提供對移動友好測試的API訪問權限?
- 17. 單元測試是否意味着測試必須被模擬?
- 18. 是否有必要檢查訪問者的瀏覽器是否支持Ajax?
- 19. 單元測試:是否足夠好?
- 20. 在Linux中測試內存是否可訪問
- 21. 是否可以在硒測試中訪問java bean?
- 22. 我是否需要在單元測試中測試邊界類?
- 23. 如何檢測是否正在訪問或請求文件?
- 24. 在測試Fluent NHibernate映射時測試id值是否是個好主意?
- 25. 是否有必要在ipad上添加mobileprovision文件來測試ipa文件
- 26. JMeter:什麼是負載測試REST API的良好測試結構?
- 27. 驗證測試臺端口需要指示還是不必要?
- 28. 測試訪問window.opener.document
- 29. 是否需要測試我的Java Servlet?
- 30. 如何測試是否需要kinit?
太棒了!感謝您的鏈接! – dcgoss