【发布时间】:2013-09-20 07:00:53
【问题描述】:
我有一个带有如下代码片段的旧应用程序:
public class MyClass
{
public void executeSomeSqlStatement()
{
final Connection dbConn = ConnectionPool.getInstance().getConnection();
final PreparedStatement statement = dbConn.prepareStatement(); // NullPointerException, if ConnectionPool.getInstance().getConnection() returns null
}
}
我想写一个单元测试,验证 MyClass.executeSomeSqlStatement 不会抛出 NullPointerException,当 ConnectionPool.getInstance().getConnection( ) 返回 null。
如何在不改变类设计(不删除单例)的情况下(模拟 ConnectionPool.getInstance().getConnection())做到这一点?
【问题讨论】:
-
stackoverflow.com/questions/2167210/… 这可能对你有帮助。
-
根据您的代码,抛出 NPE 是正确的做法。
标签: java unit-testing mocking