2014-07-16 136 views
-1

我有以下方法返回類型爲date的值。如何使用JUnit測試方法?

1)我需要使用JUnit來測試結果,但問題是我不知道如何爲我的JUnit方法的expResult變量賦值。

2)另一個問題是,如果我想測試一個無效輸入的方法,我應該定義一個新的測試方法,或者我應該在同一個方法中提供錯誤和正確的輸入?

public Date convertStringToDate(String date) { 
     try { 
      Date convertedDate = new SimpleDateFormat("yyyy-MM-dd").parse(date); 
      return convertedDate; 
     } catch (ParseException p) { 
      System.err.println(p.getMessage()); 
     } 
     return null; 
    } 


    @Test 
    public void testConvertStringToDate() { 
     System.out.println("convertStringToDate"); 
     String date = "Tue Apr 29 00:00:00 EST 2014"; 
     DateProcess instance = new DateProcess(); 
     Date expResult = null; 
     Date result = instance.convertStringToDate(date); 
     assertEquals(expResult, result); 

    } 
+0

是不是您在執行測試之前期待的結果expResult? – SaintLike

回答

1

使用日曆類來創建日期對象。

設置日曆對象併爲其分配預期的時間,然後調用其getTime方法。

Calendar rightNow = Calendar.getInstance(); 
rightNow.set(year, month, date, hourOfDay, minute, second); 
expectedData = rightNow.getTime(); 

其中時間參數是ints。獲取時間應該返回你想要的自定義日期。如果有些事情不清楚,請查看API獲取更多信息http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

要回答第二個問題:我會親自定義一種新方法。無效輸入是一個不同的測試用例。

+0

問題是關於日期而不是時間。你會舉個例子嗎?也請回答第二個問題。 – Jack

+1

即將提供相同的解決方案。有了這個,你可以建立一個日期。 – Daren

+0

爲什麼不像我在我的方法中那樣使用Date和SimpleDateFormat? – Jack