[英]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
}
}
最后,您可以將測試合並到測試套件中,然后一起運行
您的方法不返回任何內容,所以我認為您的方法只是在玩弄? 通常,DAO中的方法將返回,插入,更新或刪除值。 這些是您可以測試的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.