Как передать свойства конфигурации для Junit - PullRequest
0 голосов
/ 09 мая 2020

Я пишу тестовые примеры Junit для уровня данных, используя базу данных inmemory. Я указал имя схемы в запросе SQL, который мне нужно сделать динамическим c. Это означает, что пока я запускаю Junit, он должен иметь имя схемы Junit c. В настоящее время имя схемы считывается из файла свойств из папки ресурсов с использованием метода DatabaseUtil.getSchema("MYSCHEMA"). Я хочу, чтобы файл свойств для выполнения Junit был из ресурса тестового пакета. Я считаю, что это типичный пример использования. Но я пока не видел никакого способа добиться этого после одного дня поиска в inte rnet. Кто-нибудь, пожалуйста, предложите какой-нибудь подход или идею.

public List<String> getPoints(Long Id) throws SQLException{
        String query ="SELECT p.NAME "
                + "FROM {schema}.POINTS as p " 
                + "WHERE p._ID = ? "

        String queryWithSchema = query.replace("{schema}", DatabaseUtil.getSchema("MYSCHEMA"));
        ResultSet resultSet = null;
        List<String> result = Lists.newArrayList();

        try (Connection connection = dataSource.getConnection();
                PreparedStatement preparedStatement = connection.prepareStatement(queryWithSchema)) {
            preparedStatement.setLong(1,latestRunId);
            resultSet = preparedStatement.executeQuery();

            while (resultSet.next()) {
                result.add(resultSet.getString("NAME"));
            }

        } catch (SQLException ex) {
            LOGGER.error("error during getPoints", ex);
            throw ex;
        } finally {
            if(resultSet != null) {
                resultSet.close();
            }
        }
        return result;
    }
...