Тестирование класса соединения jdbc - PullRequest
0 голосов
/ 24 января 2019

Я стараюсь научиться проверять свои проекты правильно и постоянно.К сожалению, есть несколько вещей, которые я не понимаю, так как есть много разных мнений по этой теме.Чего я не понимаю, так это как решить, какие классы «стоит» их тестировать.В качестве примера я взял пример класса соединения JDBC из oracle:

public Connection getConnection() throws SQLException {
    Connection conn = null;
    Properties connectionProps = new Properties();
    connectionProps.put("user", this.userName);
    connectionProps.put("password", this.password);
    if (this.dbms.equals("mysql")) {
        conn = DriverManager.getConnection(
                   "jdbc:" + this.dbms + "://" +
                   this.serverName +
                   ":" + this.portNumber + "/",
                   connectionProps);
    } else if (this.dbms.equals("derby")) {
        conn = DriverManager.getConnection(
                   "jdbc:" + this.dbms + ":" +
                   this.dbName +
                   ";create=true",
                   connectionProps);
    }
    System.out.println("Connected to database");
    return conn;
}
 

Я знаю, что могу смоделировать объекты, чтобы иметь возможность смотреть на класс более изолированно.Полезно ли даже тестировать такой класс, или я могу извлечь выгоду из этого, чтобы посмотреть, можно ли теоретически установить соединение?

public class TestClass {

    @Mock
    private Connection conn;

    @Mock
    private Database database;

    @BeforeEach
    public void setUp() throws Exception {
        assertNotNull(database);
        when(database.getConnection()).thenReturn(conn);
    }
}

1 Ответ

0 голосов
/ 24 января 2019

Проверка на юнит-тесты помогает вам протестировать ту часть кода, которая в противном случае использовала бы ресурс. Использование его для тестирования класса, единственной целью которого является установление соединения с ресурсом, не имеет смысла.

Эта функциональность будет проверена во время интеграционного тестирования. Подробнее об интеграции и модульном тестировании см. Здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...