我對Python非常陌生,在Github上看到很多使用Mock進行測試的項目,但我不明白爲什麼。
當我們使用模擬,我們構建了一個模仿對象具有特定RETURN_VALUE,我不忠實地明白爲什麼我們這樣做。我知道有時很難建立我們所需的資源,但是如果我們構造一個具有某個返回值的對象/函數,那又有什麼意義呢?Python - 爲什麼我們應該使用模擬來做測試?
0
A
回答
1
模擬可以幫助編寫單元測試。 在單元測試中,您想測試一小部分實現。例如,像一個功能或一個類一樣小。
在一箇中等大小的軟件,這些小零件互相依賴。或者有時會存在外部依賴性。您可以打開文件,執行系統調用或以其他方式獲取外部數據。
在寫代碼的一小部分定向單元測試,你不想花時間去建立周圍的一切它別的。 (文件,系統調用,外部數據)。模擬來到你的幫助。通過模擬,您可以使代碼的其他依賴性按照您的喜好行事。這樣您就可以專注於測試您的預期實現。
即將與返回值的模擬:假設你想測試func_a
。 func_a
調用func_b
。 func_b
做了很多時髦的處理來計算其返回值。例如,與外部服務通話,執行一堆系統調用或其他一些昂貴的操作。由於您正在測試func_a
,因此您只關心可能的返回值func_b
。 (因此func_a
可以使用它們)在這種情況下,您可以模擬func_b
並明確設置返回值。這可以真正簡化您的測試複雜性。
相關問題
- 1. 爲什麼有時我們使用特定的位來做模板測試?
- 2. 我應該使用什麼測試框架來測試我的Rails模型?
- 3. 我應該用什麼來做碰撞測試呢?
- 4. 爲什麼我應該使用單獨的測試主機來運行XCTests,我應該怎麼做?
- 5. 爲什麼我應該使用單獨的測試目標來運行XCTests,我應該怎麼做?
- 6. 爲什麼我應該避免使用DbUnit來測試MySQL?
- 7. 我應該使用什麼測試框架來測試節點js模塊?
- 8. 爲什麼我應該模擬對象?
- 9. 我應該測試什麼?
- 10. 我應該爲分類功能做些什麼測試?
- 11. 爲什麼我們應該從TDD的失敗測試開始?
- 12. 我應該使用什麼來構建基準測試?
- 13. 我應該如何使用EC2來做性能測試
- 14. 爲什麼我們應該使用WSDL4j來開發Web服務?
- 15. 測試GUI代碼:我應該使用模擬庫嗎?
- 16. 爲什麼我們應該在測試中使用setUp和tearDown,而不是直接使用測試方法?
- 17. 爲什麼我們要用`Boy.prototype = new Human;`來模擬繼承?
- 18. 單元測試時我應該使用模擬對象嗎?
- 19. 這個模擬測試的結果應該是什麼?
- 20. 應該使用什麼rspec測試?
- 21. 我應該用什麼方法來測試VBScript?
- 22. Rails/Devise - 我應該用devise和rspec來測試什麼?
- 23. 我應該使用什麼設備來測試iphone應用程序
- 24. 我應該寫什麼樣的測試?
- 25. 我應該測試什麼? PhpUnit
- 26. 使用jdbcTemplate,我可以做些什麼來測試連接性?
- 27. 應該測試什麼
- 28. 我應該使用什麼創業板組合來測試我的rails項目?
- 29. python sys.intern做什麼,它應該在什麼時候使用?
- 30. 爲什麼我的模擬不能在我最小的測試中使用?
其狀如存根和driver..some其他發展,我們不知道實現存根但我們知道的輸出 –
在你認爲你被要求開發平均功能..但一些身體其他開發添加功能方面容易..所以你只是使用返回的添加來執行你的平均功能 –
我們想測試_our_代碼正常工作;我們不想測試外部資源的內部運作。 –