我正在嘗試創建一個模擬系統故障以確保Oracle Berkeley DB XML數據庫完整性的測試。在插入操作過程中,當前正在經歷數據丟失,所以我想設置一個測試,開始插入任意數量的文檔,並沿途解決這個過程(類似於電源線上的某個人)。在進程死亡後,我想生成一個新進程並打開數據庫以確保它正常打開。JUnit測試數據庫失敗?
單元測試是Maven構建中的衆多測試之一,並且此測試必須在Linux和Windows XP環境中運行。我目前的思考過程是爲這兩個操作系統制定一個腳本,因爲我可以使用該腳本來終止該進程並在其位置啓動一個新腳本。我有其他選擇嗎?我可以使用JUnit創建單獨的進程空間/ VM嗎?
你想測試數據庫?或者你想測試你的代碼使用該數據庫? – 2010-01-22 18:20:49
我想要它來測試我的代碼,因爲有問題的數據庫被嵌入。系統故障期間的數據損壞是非事務性Berkeley DB XML(我們必須使用)的已知問題 - 我在包裝代碼中實施了一些理智檢查以減輕損壞。 – toddk 2010-01-22 18:37:44
然後,你會想編寫單元測試來證明你的理智檢查完成他們應該做的事情。您可以編寫數據庫接口模擬並模擬各種故障,以便確定行爲。根本問題是證明你實施的完整性檢查實際上可以防止你描述的腐敗。我不會在單元測試中做到這一點,除非在每次測試運行時失敗都是可重現的。如果他們不是,我會把這個測試當作一個性能/穩定性測試來代替。 – ShabbyDoo 2010-01-23 02:26:37