2017-02-15 193 views
-2

enter image description here測試失敗:0通過,1失敗當使用JUnit測試我的方法

我的代碼如下:

@Test 
public void testTrans() { 

    AccountDao accountDao = new AccountDao(); 
    accountDao.trans(); 
    System.out.printf("test trans()"); 
} 

當我使用JUnit測試方法,出現問題,下面這個是事件日誌信息:

2017年2月15日
上午10:08所有的文件都是最新

上午10:08測試失敗:0通過,1失敗

更新

這是我的AccountDao.java,並在它

public class AccountDao { 

private Connection con; 
private PreparedStatement pstmt; 


public void trans() { 

    String sql_zs = "UPDATE account SET money=money-100 WHERE accountName='zhangsan';"; 
    String sql_ls = "UPDATE account SET money=money+100 WHERE accountName='李四';"; 

    try { 

     con = JdbcUtil.getConnection(); 
     con.setAutoCommit(false);   
     pstmt = con.prepareStatement(sql_zs); 
     pstmt.executeUpdate(); 


     pstmt = con.prepareStatement(sql_ls); 
     pstmt.executeUpdate(); 

    } catch (Exception e) { 
     e.printStackTrace(); 

     try { 
      con.rollback(); 
     } catch (SQLException e1) { 
      e1.printStackTrace(); 
     } 

    }finally { 
     JdbcUtil.closeAll(con, pstmt, null); 
     try { 
      con.commit(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

} 
} 

它到底調用此方法,改變錢,在navicat錢沒有變化:

enter image description here

+1

所以,你有一個測試,它失敗了。 (你的測試是無用的,順便說一句,它沒有測試任何東西,並且如果通過則不表示成功。)你的問題是什麼? –

+0

你確定你運行正確的測試套件嗎?因爲我沒有看到控制檯上的'printf'線 –

+1

Downvote for stupid title。 – EJP

回答

1

梅爾我認爲你缺少一個斷言陳述。假設你的.trans函數改變了你的對象內的某個值,你可以斷言這些改變正在發生。我會鏈接你的斷言文檔。 http://junit.sourceforge.net/javadoc/org/junit/Assert.html一旦你實現了一個assert方法來聲明某事是真的,你的測試應該通過。

使用斷言的例子:

@Test 
public void passingTest(){ 
    Assert.assertEquals(1, 1); // This will pass. 
} 

@Test 
public void failingTest(){ 
    Assert.assertEquals(1,2); // This will fail. 
} 

好運氣的人。很高興看到您測試您的代碼。

+0

謝謝,這對我有幫助。 – maer

+0

嘿!很高興它成了哥們。測試祝你好運! –

0

我相信在執行測試用例時會出現一些異常。您應該檢查控制檯是否有任何異常。我在您的測試用例中看不到任何斷言......您想測試什麼?

-1

enter image description here 應該是你的測試方法沒有放在測試包裏的問題吧......

+0

在這樣的地方嘗試使用英文 –

+0

@鄒遠鋒如何處理? – maer

+0

我想你可以試試斷點調試。我是用gradle搞定的,跟你的目錄結構不一樣,我的測試方法沒有放在測試包中不能使用,我只是試圖拿到數據庫連接,寫了一個查詢,但也可以正常沒有嘗試你的問題 –