模擬對象
編輯模擬對象,是軟件開發中的程序部分,用于執行單元測試作為真實對象的占位符。 這些工具通俗地稱為模擬。
完全隔離地測試單個對象并不總是可能或可取的。 如果要檢查對象與其環境的相互作用,則必須在實際測試之前模擬環境。 這可能會很麻煩、耗時,甚至會受到限制或根本不可能。
在這些情況下,模擬對象可以提供幫助。 模擬對象實現接口,待測對象通過這些接口訪問其環境。 它們確保以正確的參數和預期的順序完整地進行預期的方法調用。 模擬對象返回的不是真實數據,而是之前定義的與測試用例相匹配的值。 因此,模擬對象可以用來模仿某種行為。
部署
編輯具體來說,模擬對象在“真實”對象時才有意義
- 在測試期間不會被“意外錯誤”破壞,
- 返回非確定性結果(例如當前時間或當前溫度),
- 在準備或執行期間造成困難(例如測試用戶界面),
- 應該顯示難以觸發的行為(例如網絡錯誤),
- 速度慢或非常復雜(例如,需要在每次測試前初始化的完整數據庫),
- 尚不存在(例如在較大的軟件或硬件開發項目中),
- 必須僅出于測試目的(而非實際任務)提供信息和方法,
- 啟動無法撤消或難以撤消的過程(例如,刪除網絡資源上的文件)。
與單元測試相反,集成測試測試由互連組件(單元)組成的整個系統。 通常不需要更多的模擬對象。
不同類型
編輯為了在模塊測試期間隔離測試對象,可以實現輔助對象并用作替代品。 以下輔助對象是已知的:
Dummy 代碼中傳入但未使用的對象。 用于用值填充參數。FakeAn對象及其實現。 但是,實現是有限的,這意味著它不能在生產環境中使用。 fake 的一個典型例子是只在內存中臨時存儲數據的數據庫。Stub 對象在調用特定方法時返回相同的輸出,而不管輸入。Mock 定義特定函數調用的對象,具有特定的傳遞值返回供應. 模擬框架通常用于創建模擬對象。Spy 記錄調用和傳遞的值并在必要時返回它們的對象。 Fake、stub 或模擬對象被擴展為間諜。 或者,可以使用裝飾器。Shim,ShivA 庫,它攔截對編程接口的請求并自行處理(例如,使用偽造、存根或模擬對象)、更改傳遞的參數或重定向請求。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/366063/