【问题标题】:junit test case for my api我的 api 的 junit 测试用例
【发布时间】:2017-12-29 22:15:17
【问题描述】:

我是编写junit的新手。我有我的下面的java api,它每次都从数据库中获取一个唯一的值。它只包含一个查询。我需要为下面的api编写junit。任何人都可以给出一些建议我应该怎么做方法??

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;
    }

【问题讨论】:

    标签: java junit junit4 junit5


    【解决方案1】:

    您只使用静态方法:在被测类中以及在它的依赖项中。
    这真的不是 JUnit 的可测试代码。

    另外,你想测试什么幺正?
    您的测试没有实质性逻辑。

    您可以将SQLService.executeQuery() 设为能够模拟它的方法实例。但究竟有什么兴趣去嘲笑呢?
    断言返回结果w_seq = w_rs.getInt(1); ?
    看起来应该避免价值不大的技术断言和维护价值不大的单元测试。

    现在,您可以使用 DBunit 或工具进行测试,以填充内存数据库并执行代码。
    但执行的查询与 Oracle 序列有很强的耦合性。
    因此,您可能会遇到一些困难。

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 2021-08-04
      • 2015-09-04
      • 1970-01-01
      相关资源
      最近更新 更多