Это способ проверить исключения, возникающие внутри функции в JUnit?

У меня есть этот код на Java, и я хочу протестировать весь код. Я протестировал все, кроме части с исключениями catch. Я искал некоторые и ничего не нашел для этого, я знаю, что могу выбросить исключения из функций, но я хочу, чтобы они были внутри, если это возможно.

protected int[][] getJson(String fileName) {
    int[][] array = new int[NUMB_ROW][NUMB_COLUMN];

    try (BufferedReader buffer = new BufferedReader(
            new InputStreamReader(new FileInputStream(fileName), "UTF-8"))) {
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = buffer.readLine()) != null) {
            sb.append(line);
        }
        // Split string where there aren't a number
        String[] numbers = sb.toString().split("[^-?1-9]");
        int[] intNumbers = new int[NUMB_ROW * NUMB_COLUMN];
        int i = 0;

        // Remove empty spaces and put them in 1d array
        for (String number : numbers) {
            if (!number.equals("")) {
                intNumbers[i++] = Integer.parseInt(number);
            }
        }

        // Convert 1d array to 2d array
        int index = 0;
        for (int row = 0; row < NUMB_ROW; row++) {
            for (int col = 0; col < NUMB_COLUMN; col++) {
                array[row][col] = intNumbers[index++];
            }
        }

    } catch (FileNotFoundException e) {
        array = null;
        logger.log(Level.WARNING, String.format("File not found: %s%n", e.getMessage()));
    } catch (IOException e) {
        array = null;
        logger.log(Level.WARNING, String.format("IOException: %s%n", e.getMessage()));
    }

     return array;
}

Смоделируйте logger и убедитесь, что он вызывается с ожидаемым предупреждающим сообщением.

tsolakp 18.10.2018 00:33

Вы также можете подтвердить, что возвращенный array - это null.

dave 18.10.2018 00:44

Спасибо, @dave! Это сработало, и кода было не так много

Fritjof 18.10.2018 00:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
38
1

Ответы 1

Вы можете проверить, выбрасываются ли исключения ... Пример того, как это можно сделать

@Test(expected=IllegalFieldValueException.class)
public void functionOfYourTest() {
    // your code that thrown an exception
    // In this case we will test if will throw an exception
    // of the type IllegalFieldValueException
}

Другие вопросы по теме