2010-09-14 48 views
0

我正在做一個廣告相關的項目,在這個項目中我需要確保我們的系統在特定的時間間隔內從db中獲取廣告並將其插入到我們的正常服務流中。如何測試在特定時間間隔發生的軟件行爲?

您如何設計這樣的系統測試,以便您在確認廣告在正確的時間發生時不必等待30分鐘?

+0

你想要它被白盒測試或黑盒測試? – ckv 2010-09-14 07:44:01

+0

@ckv我想要它白盒子,我需要在代碼中實現測試程序。 – satoru 2010-09-14 07:52:07

+0

爲什麼不使時間間隔可配置,併爲了測試而減少時間間隔?如果它以30秒爲間隔工作,理想情況下,它應該在30分鐘的時間間隔內工作 – InSane 2010-09-14 07:59:09

回答

2

我會解耦處理從定時器部分插入廣告的邏輯,將後者隱藏在接口後面(對於DB也是如此)。然後(例如使用dependency injection)我可以使用在單元測試中「立即」(或在任何需要的時間間隔後)觸發的mock定時器來替換常規定時器,因此我可以斷言廣告(通過模擬DB接口提供)被插入正確輸入輸出。

這將是單元測試部分;我仍然會嘗試整合一些集成測試來驗證整個系統是否按預期工作。但是在單元徹底測試邏輯之後,集成測試可能會更淺,只需驗證幾個最基本的用例。

0

時間依賴性對於測試是不利的(它們會損害可再現性)。嘗試注入時序依賴。在你的情況下,你可以注入/參數化一個時間範圍(例如從30分鐘到近乎即時)。

相關問題