我的代码如下:
@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();
}
}
}
}
它最终调用这种方法来改变钱,在导航中钱没有改变:
答案 0 :(得分:1)
Maer我认为你缺少一个断言声明。假设您的.trans函数在对象内部更改了某个值,您可以断言这些更改正在发生。我将链接断言文档。 http://junit.sourceforge.net/javadoc/org/junit/Assert.html一旦你实现了一个断言方法断言某些东西是真的,你的测试应该通过。
使用断言的示例:
@Test
public void passingTest(){
Assert.assertEquals(1, 1); // This will pass.
}
@Test
public void failingTest(){
Assert.assertEquals(1,2); // This will fail.
}
祝你好运。很高兴看到你测试你的代码。
答案 1 :(得分:0)
我相信在执行测试用例时会有一些异常。你应该检查控制台是否有任何异常。我在你的测试用例中看不到任何断言......你想测试什么?
答案 2 :(得分:-1)