我有許多Java方法檢查數據庫中相似值的值唯一性。這裏有一個例子:如何測試檢查值唯一性的java sql查詢
public static boolean isNameUnique(String name){
Statement stmt;
try {
stmt = dbConnection.createStatement();
String sql = "SELECT name FROM model";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
//Retrieve by column name
String nameDatabase = rs.getString("name");
if(name.trim().equals(nameDatabase.trim())){
return false;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
但是我不知道如何測試這一點,該項目是在Tomcat 7運行的WAR文件,我擡頭談論的JUnit測試,並的Mockito但的Arquillian不能得到明確答案,我應該使用。
我想要做的測試的一個例子是向數據庫中插入名稱值,然後檢查相同的名稱值以確保isNameUnique返回false。
我有一些類似於上面的方法,其中我需要檢查數據庫中的值與通過該方法傳入的值的方法。
所以基本上我正在尋找最理想的方式來測試類似這樣的方法。
編輯:有人可以解釋我的問題是如何提到的一個副本?我沒有看到任何相似之處。編輯2:對不起,如果它不清楚,我正在尋找執行測試的最佳方式,我將名稱值插入到數據庫中,然後運行一個方法來檢查另一個名稱值是否唯一或不是。我需要測試數據庫嗎?我是否需要模擬對象或使用類似arquillian的東西來測試名稱的唯一性?
*有人可以解釋我的問題是如何重複的...... *,當然,你說*我想要做的是插入一個名字*,並且你想要唯一性,並且該目標可以返回一個計數。這個解釋夠了嗎?問題改進是否可以做到最好?也許你應該做的是表明一個清晰的模式,在回答問題之前,有答案的人應該要求。 – Drew
也許我沒有澄清我的問題,我正在尋找最好的框架來執行測試,將一個名稱值插入到數據庫中,然後運行一個測試來檢查是否將重複的名稱值傳入了方法該方法將返回false。我可以很容易地使用junit來返回false部分,但真正的問題是如何複製具有插入名稱值的數據庫用於測試目的。 – olliejjc16
所以你要求一個測試框架的離題資源請求。 – Drew