测试用例问题

时间:2011-02-04 10:12:26

标签: java

喜   我有一个类,在那个类中我有一个方法如下:   我正在使用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语句,我想测试insert是否成功,   我想使用assert()测试方法变量。请告诉我如何在java中编写测试用例。

3 个答案:

答案 0 :(得分:1)

您需要执行以下操作:

  1. 检查INSERT之前和之后的行数,并断言after计数大于之前的计数。
  2. 执行SELECT并查看您的行是否已进入数据库。
  3. 检查调用返回的受影响的行数,并查看它等于一行。

答案 1 :(得分:1)

可能你有'insertUser'方法其他方法,比如'selectUser'和'removeUser'所以在你的testCase中你应该使用'selectUser'方法来确保你的用户出现在DB中,最后你应该调用'removeUser'因为在测试之后你应该保持你的数据像以前一样干净(测试能够在相同的测试数据上运行多次,结果相同)。

答案 2 :(得分: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!