簡單但粗糙的選擇是「抽象」牆壁時間檢索邏輯。
說,使用類WallTime
與GetTime
方法,並在整個應用程序中使用它。
這個類可以使用兩個時間提供者。一個是系統中的RT時鐘。
另一個只是從預先錄製的列表中返回值。
您記錄第一次通過算法並存儲由GetTime
返回的值。 這些值將形成第二個「時間提供者」的「預先錄製的」值列表。
假設第二輪將在以相同的順序撥打電話到GetTime
你可以簡單地返回相同的時間值在第一次運行:)
您還可以,如果你要調整一些定時編輯列表。 您也可以有多個存儲列表,以模擬不同的硬件。
實施例:
假設算法是這樣的:
GetTime
- >返回T1從時鐘
- 調用一個函數X
GetTime
- >從時鐘 返回T2
- 根據(T2-T1)
決定下一個要調用的函數(例如,
Y
)
GetTime
- >從時鐘
- 調用該函數返回T3
Y
GetTime
- >從時鐘 返回T4 ...
後保存T1,T2,T3和T4在列表中,您可以完全重播上述運行(關於由GetTime
返回的值)。
如果在步驟6中執行的功能(這是您的算法根據性能選擇的功能)在第二次運行中不相同,即使(T2-T1)時間差相同即它取決於一個可變的非時間相關參數。