2017-02-15 208 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搞定的,跟你的目录结构不一样,我的测试方法没有放在测试包中不能使用,我只是试图拿到数据库连接,写了一个查询,但也可以正常没有尝试你的问题 –