2011-02-04 119 views
0

嗨 我有一個類,在那個類中我有一個方法如下: 我正在使用java。測試用例問題

public class ABC{ 
    some code here... 
    .................. 
    PreparedStatement pre; 
     public void insertUser(String firstName,String lastName){ 
      pre.setString(1,firstName); 
      pre.setString(2,lastName); 
      pre.execute(); 
     } 
} 

用於上述方法我想編寫測試用例,我已經創建了測試類,如下所示:現在在這裏我想寫的斷言語句

public class ABCTest{ 
    ABC abc=new ABC(); 
    public void testInsertUser(){ 

,我想測試是否插入爲成功, 我想用assert()來測試方法變量。請告訴我如何在java中爲此編寫測試用例。

+0

請注意,你可能不希望你的單元測試,斷言。相反,你可能只想返回一個`boolean`,這樣你的測試框架可以從多個測試中收集結果。 – 2011-02-04 10:15:35

回答

0

你的意思是這樣的:

public void testInsertUser(){ 
ABC.insertUser(User.firstname, user.lastname); 
Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT firstname_Colname, lastname_Colname FROM Your_Table"); 
boolean found = false; 
while (rs.next()) 
{ 
    found = ((User.firstname = rs.getString("firstname_Colname")) and (User.lastname = rs.getString("lastname_Colname"))); 
    if (found) 
    { 
    break; 
    }  
} 
assertEquals('test failed!', true, found); 
} 

如果是你實際上是在測試其犯規任何意義,我PreparedStatement的!

1

你需要做的是這樣的:行

  1. 檢查計數之前和INSERT之後斷言計數後計數之前比一個大。
  2. 做一個SELECT並查看你的行是否將它放入數據庫中。
  3. 檢查呼叫返回的影響行數,並確認它等於1。
1

可能是你與你的「insertUser」方法之外的方法,如「selectUser」和「removeUser」所以在你的測試用例,你應該使用「selectUser」的方法,以確保您的用戶出現在DB,也是在沿着有最後你應該在測試之後調用'removeUser',因爲它應該像以前一樣保持數據的清潔(測試可以在具有相同結果的相同測試數據上多次運行)。