2012-05-13 1 views
-2

Я получаю это сообщение в единичном тесте expected:<interface java.sql.Connection> but was:<class com.mysql.jdbc.JDBC4Connection>не могу понять предупреждение: ожидается: <интерфейс java.sql.Connection> но <класс com.mysql.jdbc.JDBC4Connection>

из моего кода:

@Test 
public void connectionTest() throws SQLException{ 
    Connection conn = ConnectionManager.createConnection(); 
    assertEquals(Connection.class, conn.getClass()); 
    conn.close(); 
} 

Мой фиктивный класс для получения соединения:

public class ConnectionManager { 


    @SuppressWarnings("unused") 
    public static Connection createConnection() throws SQLException { 
     String url = "jdbc:mysql://localhost:3306/library"; 
     String name = "root"; 
     String password = "root"; 
     Connection connection = null; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      connection = DriverManager.getConnection(url, name, password); 
     } catch (ClassNotFoundException e) { 
      if (connection != null){ 
       connection.close(); 
      } 
      throw new SQLException(e); 
     } 
     return connection; 
    } 
} 

Что случилось с моим кодом?

+0

Пожалуйста, не обходите фильтр качества. – SLaks

+2

Почему вы тестируете компилятор? – SLaks

ответ

4

Ваше утверждение в корне неверно.

Connection.class - это интерфейс.
conn.getClass() вернет конкретный класс, который реализует этот интерфейс.

+0

Спасибо. Я понял свою ошибку. – ASD

Смежные вопросы