我正在編寫運行保齡球遊戲的webapp的代碼。球員得分被保存在一個數據庫中,因此前十名可以被檢索到以便在主頁上看到。問題是,我無法訪問從從數據庫中檢索分數的方法返回的arraylist中的值。從arraylist訪問元素從方法
這是一個JUnit測試方法:(CDR是頂級球員,應該認定爲true)
<!-- language: c# -->
public class DatabaseTest {
ScoreDB sdbTest = new ScoreDB();
@Test
public void testTopPl(){
assertTrue(sdbTest.listTopPlayers().get(0).getName() == "CDR");
}
}
這是數據庫檢索代碼:
public List<Player> listTopPlayers(){
Transaction trns = null;
Session session = HibernateUtil.getSessionFactory().openSession();
List<Player> topPlayers = new ArrayList<Player>();
try {
trns = session.beginTransaction();
List<Player> players = session.createQuery("FROM Player").list();
Collections.sort(players, new ScoreComparator());
for (int i=0; i<10; i++){
topPlayers.add(players.get(i));
}
// System.out.print(topPlayers.get(0).getName() + " test");
trns.commit();
trns = session.beginTransaction();
}catch (RuntimeException e) {
if(trns != null){
trns.rollback();
}
e.printStackTrace();
} finally{
session.flush();
session.close();
}
return topPlayers;
}
}
「無法訪問」是什麼意思?它會拋出一個錯誤嗎?它是否返回錯誤的項目? – christopher 2013-05-07 12:05:02
它並沒有出現錯誤,但是當我運行JUnit測試用例時,即使我檢查了要返回的ArrayList,但在獲得預期值的方法中,我也得到了失敗的測試。 – jchoran 2013-05-07 12:07:54