我的api的{jun}测试用例

时间:2017-07-24 10:51:37

标签: java junit junit4 junit5

我是编写junits的新手。我的下面的java api每次从database获取一个唯一的值。它只包含一个查询。我需要写下junit for api.can任何人都给出一些建议我该怎么办?方法??

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

1 个答案:

答案 0 :(得分:0)

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

此外,你想做什么测试单一? 你的测试没有实质性的逻辑。

您可以使SQLService.executeQuery()方法实例能够模拟它。但真的有兴趣嘲笑它吗? 断言结果返回w_seq = w_rs.getInt(1);
看起来应该避免技术断言价值很低并且维持单位测试的价值很低。

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