簡體   English   中英

您可以用這段代碼執行哪種JUnit測試?

[英]What kind of JUnit test can you do with this bit of code?

public static void sql() {
    String url = "jdbc:msql://carthage.imaginary.com/ora";
    Connection con = null;

    try {
      String driver = "com.imaginary.sql.msql.MsqlDriver";

      Class.forName(driver).newInstance();
    } catch (Exception e) {
      System.out.println("Failed to load mSQL driver.");
      return;
    }
    try {
      con = DriverManager.getConnection(url, "borg", "");
      Statement select = con.createStatement();
      ResultSet result = select
          .executeQuery("SELECT test_id, test_val FROM test");

      System.out.println("Got results:");
      while (result.next()) { // process results one row at a time
        int key = result.getInt(1);
        String val = result.getString(2);

        System.out.println("key = " + key);
        System.out.println("val = " + val);
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (con != null) {
        try {
          con.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
}

我必須對Junit進行一堆SQL方法的測試,但我不知道如何使用這段代碼。 我知道如何使用斷言和預期的異常,但是這里沒有用。

首先,我建議您編寫一些測試用例。 然后,實現需要案例的方法(將這段代碼重構為方法)。

首先,我將代碼分解為兩部分。

1 .create connection

2. Get connection object and do operation.

您將兩者都結合在您的代碼中。

我會做如下測試用例

首先編寫一個junit類來測試連接。

Class GenericDAO
public static Connection getConnection(){

   do your sql steps and return connection object

}

而你的測試課應該是

public class TestConnection {

   public void testConnection(){
    Connection con = GenericDAO.getConnection();

   assert here for not null
   Assert.assertForNotNull(con );
   }

add test cases for other boundary condition

}

稍后您可以編寫其他表sql查詢的個別測試用例

用於測試表

public class TestDAO
      //either you pass conection object or inherit from parent class
      public String retrieveResults(){
       do opertaion here

    }
  }

您將為此擁有一個單獨的junit

class TestDAOTest{

   public void testForResults(){

    String str = testDAO.retreiveResults();

    do assertrtion as per your wise

   assert for null, or specific string, negative test cases etc. Note , each can be a separate test cases, by this we are covering boundary conditions

   }

}

最后,您可以將測試合並到測試套件中,然后一起運行

http://www.tutorialspoint.com/junit/junit_suite_test.htm

您的方法不返回任何內容,所以我認為您的方法只是在玩弄? 通常,DAO中的方法將返回,插入,更新或刪除值。 這些是您可以測試的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM