我正在嘗試編寫一個Junit來測試具有當前時間戳的對象。問題是當我第一次創建當前時間戳記如下:在junit中測試當前java時間戳
Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
它創建一個時間戳記對象與當前時間包括毫秒。所以,當我跑我的測試中,他們永遠都不會相同的,因爲有一段時間,我創建的時間戳對象和測試的時間之間的時間以毫秒爲單位經過:
x.setTimeToMyMethod(timestamp);
assertEquals(timestamp, x.getTimeFromMyMethod());
我試圖用SimpleDateFormat的,但它轉換的時間到一個字符串,我的setter方法只接受Timestamp對象。 無論如何,我能克服這個問題嗎? 在此先感謝!
感謝您的答案,這裏是我的代碼,並希望這將澄清我想要做的事:
public class myTest {
Date date = new Date();
Timestamp timestamp = new Timestamp(date.getTime());
myTestingClass testClass = new myTestingClass();
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Before
public void setUp() throws Exception {
testClass.setCreateDate(timestamp);
}
@After
public void tearDown() throws Exception {
}
@Test
public void test() {
try {
assertEquals(timestamp, testClass.getCreateDate());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
,當我嘗試運行它,它給了我下面的錯誤:
java.lang.AssertionError: expected:<2015-02-11 09:09:40.038> but was:<2015-02-11 09:09:40.04>
您能解釋何時創建第二個Timestamp對象嗎?在你的(簡短的)示例代碼中,並不清楚導致問題的原因。 – 2015-02-11 07:58:13
@Duncan我編輯了我的問題,謝謝你的評論! – tkyass 2015-02-11 14:19:35