我有Java的單元測試,它向本地測試數據庫中的一行寫入一個常量Timestamp,並將其讀回並將其與我的預期進行比較。這適用於GMT時區下的本地筆記本電腦。處理本地和遠程數據庫TimeZone差異的測試
當我將代碼提交給我們的持續集成服務器時,測試失敗,時間差異爲-5小時。這並不奇怪,因爲我們的集成服務器託管在美國東海岸的AWS上。然而,它造成了一個問題...
更改我的本地MySQL服務器與遠程服務器具有相同的時區(並讓我的團隊中的所有開發人員也這樣做),任何人都可以告訴我如何在代碼中解決這個問題而不會太冒昧?
//Fetch actual table contents
IDataSet databaseDataSet = databaseTester.getConnection().createDataSet();
ITable actualTable = databaseDataSet.getTable("batch");
// Load expected data from an XML dataset
IDataSet expectedDataSet = new XmlDataSet(getClass().getResourceAsStream("/dbunit/expected_insert_batch.xml"));
ITable expectedTable = expectedDataSet.getTable("batch");
// Assert actual database table match expected table
Assertion.assertEquals(expectedTable, actualTable);
感謝,
你應該詳細說明你如何比較時間戳,作爲整數?作爲字符串? – Guillaume 2010-12-14 11:56:46
是的,請顯示單元測試的詳細信息:) – 2010-12-14 11:59:04
時間戳比較由DBUnit完成 – Scruffers 2010-12-14 11:59:12