在Mockito中压制NullPointerException?

时间:2016-03-29 06:11:15

标签: java junit mockito junit4

DAOClass.makeDBConnection()方法返回Application Server(Jboss)中配置的数据源(使用查找)。需要为此方案实现junit测试用例。

使用Mockito,测试DAO方法如下。由于它无法找到数据源(如预期的那样),因此返回NullPointerException。如何处理NullPointerException并返回我在下面的代码中创建的连接?或者还有其他更好的单元测试框架来处理这种情况吗?

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection conn = DriverManager.getConnection("jdbc:sqlserver://DB:1433;DatabaseName=databasename", "userid", "password");

    when(DAOClass.makeDBConnection()).thenReturn(conn);

1 个答案:

答案 0 :(得分:0)

Mockito不能以你的方式模拟静态方法调用;它通过生成的子类(代理)动态覆盖所有方法来有效地工作。

您需要围绕要模拟的静态方法编写包装类,否则重构代码以避免静态调用,或者使用PowerMock等工具在运行时重写系统的字节码。