2017-07-24 87 views
0

我是新来写junits.I有我下面的Java API它得到一个独特的价值从database.It每次只包含一个单一的query.I需要编写的JUnit下面api.can人提出一些建议,我应该怎么办?JUnit测试案例我的API

public static int getUniqueDBCSequence() throws Exception 
    { 

     int w_seq = 0; 
     QueryData w_ps = null; 
     ResultSet w_rs = null; 

     try 
     { 
      w_ps = new QueryData("SELECT GETUNIQUENUMBER.NEXTVAL FROM DUAL"); 
      w_rs = SQLService.executeQuery(w_ps); 

      while (w_rs.next()) 
      { 
       w_seq = w_rs.getInt(1); 
      } 

     } 
     catch (Exception a_ex) 
     { 
      LOGGER.fatal("Error occured : " + a_ex.getMessage()); 
     } 
     finally 
     { 
      SQLService.closeResultSet(w_rs); 
     } 
     return w_seq; 
    } 

回答

0

您只使用静态方法:在被测试的类中,而且在它的依赖关系中。
它实际上不是JUnit的可测试代码。

再说了,你做什么,你要测试统一?
您的测试没有实质性逻辑。

你可以做SQLService.executeQuery()的方法实例可以嘲笑它。但真的有兴趣嘲笑它吗?
要断言结果返回w_seq = w_rs.getInt(1);
它看起来像技术断言,价值很少,并保持单位测试价值很小应避免。现在

,您可以用DbUnit或工具测试内存数据库来填充,并执行对码。
但是执行的查询与Oracle序列有很强的耦合。
所以,你可能会遇到一些困难。