Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Junit Test 4 ловим исключение / 4 сообщений из 4, страница 1 из 1
01.02.2022, 16:42
    #40131055
f9n6001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit Test 4 ловим исключение
Здрасти :))

Вопрос по Junit4

Вот так все работает:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    @Rule
    public ExpectedException exceptionRule = ExpectedException.none();

    @Test//(expected = NotExistStorageException.class)
    public void deleteAndNotExistStorageException() {
        // Удаляем несколько рандомных резюме из коллекции
        //  и проверяем их наличие в хранилище (должен
        // броситься NotExistStorageException

     for (int i = 0; i < ARRAY_STORAGE.size(); i += ((int) (Math.random() * 10))) {
            String randomUuid = "uuid" + i;
            assertTrue(ARRAY_STORAGE.delete(randomUuid));
/*            Throwable exception = assertThrows(NotExistStorageException.class, (ThrowingRunnable) ARRAY_STORAGE.get(randomUuid));
            assertEquals("Резюме с uuid = " + randomUuid + " не существует!", exception.getMessage());*/
            {
                exceptionRule.expect(NotExistStorageException.class);
                ARRAY_STORAGE.get(randomUuid);
            }
        }
    }



Но ExpectedException.none - depricated. Пытаюсь как-то это реализовать через Throwable exception = assertThrows(); (закомментированный код в цикле for), но там как раз не работает (см картинку). Очевидно, я что-то не так пишу, но мой (прямо скажет не самый блестящий) уровень английского не сильно помогает понять, где я ошибаюсь. Может вы подскажете?
...
Рейтинг: 0 / 0
01.02.2022, 17:08
    #40131071
razliv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit Test 4 ловим исключение
Тут написано что ожидаемое исключение NotExistStorage, а вылетел NullPointerException.

Какого типа перменная ARRAY_STORAGE, и возможно get выкидывает NullPointerException ?
...
Рейтинг: 0 / 0
01.02.2022, 22:34
    #40131123
faustgreen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit Test 4 ловим исключение
AssertThrows
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 
public static <T extends Throwable> T assertThrows(Class<T> expectedThrowable,
                                                   ThrowingRunnable runnable)

    Asserts that runnable throws an exception of type expectedThrowable when executed. If it does,
 the exception object is returned. If it does not throw an exception, an AssertionError is thrown. If it 
throws the wrong type of exception, an AssertionError is thrown describing the mismatch; the 
exception that was actually thrown can be obtained by calling Throwable.getCause().

    Parameters:
        expectedThrowable - the expected type of the exception
        runnable - a function that is expected to throw an exception when executed 
    Returns:
        the exception thrown by runnable
    Since:
        4.13


If it throws the wrong type of exception, an AssertionError is thrown describing the mismatch;
Если будет выброшен неправильный тип исключения, то AssertionError будет выброшен с описанием несоответсвтия.

Вот здесь (ThrowingRunnable) ARRAY_STORAGE.get(randomUuid) тут у тебя выпадает NullPointerException
...
Рейтинг: 0 / 0
02.02.2022, 19:39
    #40131316
f9n6001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit Test 4 ловим исключение
faustgreen,

Да, NullPointerException имел место быть, но все-таки дело было не в нем одном.
Более корректная строка для создания объекта exception выглядит так:


Код: java
1.
2.
3.
NotExistStorageException exception = assertThrows(NotExistStorageException.class, () -> {
ARRAY_STORAGE.get(randomUuid);
});
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Junit Test 4 ловим исключение / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]