测试失败:0通过,1失败当使用JUnit测试我的方法
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钱没有变化:
梅尔我认为你缺少一个断言陈述。假设你的.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.
}
好运气的人。很高兴看到您测试您的代码。
谢谢,这对我有帮助。 – maer
嘿!很高兴它成了哥们。测试祝你好运! –
我相信在执行测试用例时会出现一些异常。您应该检查控制台是否有任何异常。我在您的测试用例中看不到任何断言......您想测试什么?
在这样的地方尝试使用英文 –
@邹远锋如何处理? – maer
我想你可以试试断点调试。我是用gradle搞定的,跟你的目录结构不一样,我的测试方法没有放在测试包中不能使用,我只是试图拿到数据库连接,写了一个查询,但也可以正常没有尝试你的问题 –
所以,你有一个测试,它失败了。 (你的测试是无用的,顺便说一句,它没有测试任何东西,并且如果通过则不表示成功。)你的问题是什么? –
你确定你运行正确的测试套件吗?因为我没有看到控制台上的'printf'线 –
Downvote for stupid title。 – EJP