Я пытаюсь провести модульное тестирование тонкого слоя доступа к данным, который я написал. Я надеялся, что мне не нужно будет вставлять заглушку DriverManager в класс, который устанавливает соединение, и у меня нет фиктивной инфраструктуры. Я проверил мою реализацию на MockDunver MockRunner , и она очень похожа, но когда я запускаю тест, я получаю SQLException: «Не найден подходящий драйвер для jdbc: mysql: // localhost: 3306». Вот код заглушки:
public class DriverStub implements Driver
{
@Override
public boolean acceptsURL(String URL) throws SQLException
{
return true;
}
@Override
public Connection connect(String url, Properties info) throws SQLException
{
return new ConnectionStub();
}
@Override
public int getMajorVersion()
{
return 1;
}
@Override
public int getMinorVersion()
{
return 0;
}
@Override
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info)
throws SQLException
{
return new DriverPropertyInfo[0];
}
@Override
public boolean jdbcCompliant()
{
return true;
}
}
Фрагмент телефонного кода:
Connection connection = null;
try
{
Class.forName(driver).newInstance();
}
...
try
{
connection = Drivermanager.getConnection(...);
}
...